思路
对于每一个数我们都可以暴力求出来然后打在一个数组里面,然后按题意模拟就可以了。
但这里要注意每算一个数的时候都要进行一次取模,不然会爆long long
#includeusing namespace std; #define p 11111111; bool t[11111115]; __attribute__((optimize("O2"))) int main() { int n,a,b,c; scanf("%d%d%d%d",&n,&a,&b,&c); for (int i=1;i<=n;i++) { long long j=0; j=(a*i)%p; j=(j*i)%p; long long k=(b*i)%p; j=(j+k)%p; j=(j+c)%p; j=j%p; t[j]=true; } long long x=0; long long ans=0; for (int i=0;i<=11111111;i++) { if (t[i]==true) { x++; int l=(i*x)%p; ans=(l+ans)%p; } } printf("%I64d\n",ans); return 0; }
Comments NOTHING