今天一直在等_ty证明NIMGAME的SG函数解法原理,结果他自己推了一整天。
testA:
不要因为看见一个序列问题可以用前缀和解救得意忘形,我【和谐】怎么知道这【和谐】输入数据【和谐】有负数。
然后,我,在处理了负数输入之后,成功地用兼容版cin T了一个点。
testB:
找负环,测试后,我们精心构造了一组良心数据卡掉了bbchja的DSF,标程的SPFA一点事都没有。所以啊,不要为了追求那个二分之一的常数,把自己的脸卖到良心数据的风口浪尖。
这个良心数据的基本图形结构是这样的
/ / / / / /
/ / / / / /
/ / / / / /
/ / / / / /
#include<iostream> #include<cstdio> #include<cstring> using namespace std; long long v[500002]; long long n,k,s,t,a; int main() { scanf("%lld%lld",&n,&k); memset(v,0,sizeof(v)); v[0]=1; s=0; a=0; for (int i=0;i<n;i++) { scanf("%lld",&t); t%=k; if (t<0) t+=k; a+=t; a%=k; if (a<0) a+=k; s+=v[a]; v[a]++; } printf("%lld",s); return 0; }