前缀和0分555

P3932 浮游大陆的68号岛

![爆零](https://static1.cxy61.com/bcgame_face2face/9308/58b07ba2849ad916a36ec3974a210511_v.gif-400x225) 心态崩,
by IDNo1 @ 2023-08-06 21:58:15


不开longlong见祖宗?
by 聊机 @ 2023-08-06 22:05:13


@[聊机](/user/290959) 不是
by IDNo1 @ 2023-08-06 22:10:30


@[IDNo1](/user/777131) 你这明显就少一个数组
by 聊机 @ 2023-08-06 22:30:49


@[IDNo1](/user/777131) 我自己写了一下,你看看。 ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; inline int qr() { int k=0;char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))k=k*10+(ch^48),ch=getchar(); return k; } const int N=2e5+2; const int mod=19260817; int n,m; ll d[N],s[N],s1[N]; inline ll c1(int l,int r,int x) { if(l>r) return 0; return ((-(s1[r]-s1[l-1])+(d[x])*(s[r]-s[l-1])%mod)%mod+mod)%mod; } inline ll c2(int l,int r,int x) { if(l>r) return 0; return (((s1[r]-s1[l-1])+(-d[x])*(s[r]-s[l-1])%mod)%mod+mod)%mod; } int main() { n=qr(),m=qr(); for(int i=2;i<=n;i++) d[i]=(d[i-1]+qr())%mod; for(int i=1;i<=n;i++) s[i]=(s[i-1]+qr())%mod; for(int i=2;i<=n;i++) s1[i]=(s1[i-1]+d[i]*(s[i]-s[i-1]))%mod; int x,l,r; while(m--) { x=qr(),l=qr(),r=qr(); if(x>=l&&x<=r) printf("%lld\n",(c1(l,x-1,x)+c2(x+1,r,x))%mod); else if(x>r) printf("%lld\n",c1(l,r,x)); else printf("%lld\n",c2(l,r,x)); } return 0; } ```
by 聊机 @ 2023-08-06 22:51:58


可能是mod的问题吧
by dry_ @ 2024-03-05 20:20:34


我就是被mod卡了好久
by dry_ @ 2024-03-05 20:20:57


|