求方案(思維)

2021-09-28 13:31:16 字數 1020 閱讀 9669

題目描述

有n個正整數排成一行。你的目的是要從中取出乙個或連續的若干個數,使它們的和能夠被k整除。

例如,有6個正整數,它們依次為1,2,6,3,7,4。若k=3,則你可以取出1,2,6,或者2,6,3,7,也可以僅僅取出乙個6或者3使你所取的數之和能被3整除。當然,滿足要求的取法不止以上這4種。事實上,一共有7種取法滿足要求。

給定n和k,以及這n個數。你的任務就是確定從這n個數中取出其中乙個數或者若干連續的數,使它們的和能被k整除有多少方法。記ha=1234567,由於取法可能很多,因此你只需要輸出它mod ha的值即可

輸入

第一行為兩個整數n,k。以下n行每行乙個正整數,描述這個序列。

輸出

輸出乙個整數,為答案mod ha的結果。

樣例輸入

6 3126

374樣例輸出

7提示

對於30%的資料,有1≤n≤1000

對於100%的資料,有1≤n≤500000,1≤k≤100000

思路

對該序列,求字首和sum[i],對位置i**實現

#pragma gcc optimize(3,"ofast","inline")

#includeusing namespace std;

const int inf=0x3f3f3f3f;

const int n=100005;

const int mod=1234567;

int n,k;

int sum[n];

int main()

int ans=sum[0];

for(int i=0;iprintf("%d\n",ans%mod);

return 0;

}

求雙機備份方案,

系統需求 採用ibm p630小型機,儲存採用ibm fast t600,目前為單機執行,小型機通過san交換機連線磁碟系統,mq訊息中介軟體系統小型機負責與國家局的資料上傳。rfid系統採用兩台pc伺服器,通過一台san交換機連線到磁碟上,使用微軟自帶的集群軟體,實現sql資料的高可用,情況配置如...

問題 E 求方案

題目描述 有n個正整數排成一行。你的目的是要從中取出乙個或連續的若干個數,使它們的和能夠被k整除。例如,有6個正整數,它們依次為1,2,6,3,7,4。若k 3,則你可以取出1,2,6,或者2,6,3,7,也可以僅僅取出乙個6或者3使你所取的數之和能被3整除。當然,滿足要求的取法不止以上這4種。事實...

揹包問題求方案數 揹包問題求具體方案

在01揹包的基礎上要求出最優解的方案數 具體的方案 揹包問題求方案數 題目鏈結 解題思路 我們可以設定乙個與陣列f功能類似的陣列g,其中f i 儲存的是體積等於i的最優解 這裡是等於,之前的部落格說的是小於等於,原因後面會說 而g i 儲存的是體積等於i時的最優解的方案數,而f i 為什麼儲存的是等...