题意:问是否存在序列n的某子序列之和是m的倍数
首先求每位%m后的前缀和 【 (a+b)%k == (a%k +b%k)%k】, a[i]=(a[i]+a[i-1])%m,若出现余数为0,则子序列存在
统计每个余数出现的次数,若出现两个相同余数 即a[k] == a[i] k>i, 或n>m(抽屉原理:m个数放进m-1个抽屉 必有两个数在同一个抽屉里)则子序列i+1...k必是m的倍数
#include#include #include #include #include #include #include #include