P5686 [CSP-S2019 江西] 和积和

题面里的
by wdd2929 @ 2023-08-27 16:58:34


@[wdd2929](/user/672940) 举例:$n=6$ ``` ANS=S(1,1)+S(1,2)+S(1,3)+S(1,4)+S(1,5)+S(1,6) +S(2,2)+S(2,3)+S(2,4)+S(2,5)+S(2,6) +S(3,3)+S(3,4)+S(3,5)+S(3,6) +S(4,4)+S(4,5)+S(4,6) +S(5,5)+S(5,6) +S(6,6) ```
by wpy233 @ 2023-08-27 17:01:21


@[wpy233](/user/214172) 哦,谢谢大佬指点
by wdd2929 @ 2023-08-27 17:02:16


@[wpy233](/user/214172) 大佬 感觉代码没啥问题结果样例也过不去 ```cpp // Problem: // P5686 [CSP-S2019 江西] 和积和 // // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P5686 // Memory Limit: 125 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org) #include<iostream> #include<algorithm> //#include<cstdio> #define ll long long #define endl '\n' #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define per(i,a,b) for(int i=(a);i>=(b);i--) #define N 500100 //1e6+100 #define MOD 1000000007 #define int long long using namespace std; int n; int a[N],b[N]; int sa[N],sb[N],ss[N]; int s1,s2,s3,s4,s; signed main(){ //ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); cin>>n; rep(i,1,n) cin>>a[i]; rep(i,1,n) cin>>b[i]; rep(i,1,n){ a[i]+=a[i-1]; b[i]+=b[i-1]; a[i]%=MOD; b[i]%=MOD; sa[i]=a[i]+sa[i-1]; sb[i]=b[i]+sb[i-1]; sa[i]%=MOD; sb[i]%=MOD; ss[i]=((sa[i]*sb[i]%MOD)+ss[i-1])%MOD; } /* 计算x*y=(a[j]-a[i-1])*(b[j]-b[i-1]) =a[j]*b[j]-a[j]*b[i-1]-a[i-1]b[j]+a[i-1]b[i-1]; 分开求每一个值 */ rep(i,1,n){ s1=(ss[n]-ss[i-1]+MOD)%MOD; s2=((sa[n]-sa[i-1]+MOD)%MOD * b[i-1])%MOD; s3=((sb[n]-sb[i-1]+MOD)%MOD * a[i-1])%MOD; s4=((n-i+1)*((a[i-1]*b[i-1])%MOD))%MOD; s+=(s1-s2-s3+s4); s%=MOD; } cout<<s; return 0; } ```
by lightme @ 2024-05-11 17:14:23


@[lightme](/user/940317) 我都一年没碰信竞了,去发新帖找别的大佬问吧
by wpy233 @ 2024-05-11 22:41:54


|