求助
查看原帖
求助
731650
_zuoqingyuan楼主2023/9/30 11:31
#include <iostream>
#include <cstdio>
using namespace std;
const int N=5e5+10;
int a[N],b[N],sa[N],sb[N],c[N],ssa[N],ssb[N],n,Mod=1e9+7,ans=0;
int mod(int a){
    return (a%Mod+Mod)%Mod;
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)scanf("%d",&b[i]);
    for(int i=1;i<=n;i++)sa[i]=mod(a[i]+sa[i-1]);
    for(int i=1;i<=n;i++)sb[i]=mod(b[i]+sb[i-1]);
    for(int i=1;i<=n;i++)c[i]=mod(c[i-1]+sa[i]*sb[i]);
    for(int i=1;i<=n;i++)ssa[i]=mod(sa[i]+ssa[i-1]);
    for(int i=1;i<=n;i++)ssb[i]=mod(sb[i]+ssb[i-1]);
    for(int i=1;i<=n;i++){
        //printf("%d %d %d %d %d\n",sa[i],sb[i],ssa[i],ssb[i],c[i]);
        int f1=mod(c[n]-c[i-1]),f2=mod((n-i+1)*mod(sa[i-1]*sb[i-1])),f3=mod(sa[i-1]*mod(ssb[n]-ssb[i-1])),f4=mod(sb[i-1]*mod(ssa[n]-ssa[i-1]));
        ans=mod(ans+f1+f2-f3-f4);
        //printf("%d %d %d %d %d\n",ans,f1,f2,f3,f3);
    }
    printf("%d",mod(ans));
    return 0;
}

代码只有20分,1~2AC。为啥,大佬求调

2023/9/30 11:31
加载中...