有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整除有多少方法。
由於取法可能很多,因此你只需要輸出它mod 1234567的值即可。
輸入格式
第一行有兩個正整數,分別代表n和k。輸入資料保證有n<=500 000,k<=100 000。
以下n行每行乙個正整數。這些正整數保證都不大於10 000。
輸出格式
乙個正整數。它應該是你的答案mod 1234567的結果。
樣例輸入1
6 312
6374
樣例輸出1
7
各個測試點1s
#include
using
namespace std;
int a[
100001];
intmain()
cout << ans << endl;
return0;
}
Vijos 連續數之和 組合數學
描述 有n個正整數排成一行。你的目的是要從中取出乙個或連續的若干個數,使它們的和能夠被k整除。例如,有6個正整數,它們依次為1 2 6 3 7 4。若k 3,則你可以取出1 2 6,或者2 6 3 7,也可以僅僅取出乙個6或者3使你所取的數之和能被3整除。當然,滿足要求的取法不止以上這4種。事實上,...
Vijos P1090 連續數之和
時間限制 1 sec 記憶體限制 64 mb 有n個正整數排成一行。你的目的是要從中取出乙個或連續的若干個數,使它們的和能夠被k整除。例如,有6個正整數,它們依次為1 2 6 3 7 4。若k 3,則你可以取出1 2 6,或者2 6 3 7,也可以僅僅取出乙個6或者3使你所取的數之和能被3整除。當然...
Vijos 1130題 數的計數
我們要求找出具有下列性質數的個數 包含輸入的自然數n 先輸入乙個自然數n n 1000 然後對此自然數按照如下方法進行處理 l 不作任何處理 2 茬它的左邊加上乙個自然數,但該自然數不能超過原數的一半 3 加上數後,繼續按此規則進行處理,直到不能再立生自然數為止。輸入格式 自然數n 輸出格式 滿足條...