P5686 [CSP-S2019 江西] 和积和
题意
给定两个下标从
要求出下列式子的值:
将答案模
分析
令
对于每一个
。 。 。
最后
记得变乘边模,特别是
#include<bits/stdc++.h> #define mod 1000000007 #define N 500005 #define int long long using namespace std; int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();} return x*f; } int n,ans; int a[N],b[N],suma[N],sumb[N],sum[N]; signed main(){ n=read(); for(int i=1;i<=n;++i) a[i]=(read()+a[i-1])%mod; for(int i=1;i<=n;++i) b[i]=(read()+b[i-1])%mod; for(int i=1;i<=n;++i) suma[i]=(suma[i-1]+a[i])%mod; for(int i=1;i<=n;++i) sumb[i]=(sumb[i-1]+b[i])%mod; for(int i=1;i<=n;++i) sum[i]=(sum[i-1]+a[i]*b[i])%mod; for(int i=1;i<=n;++i) ans=(ans+(i*a[i]%mod*b[i]%mod+sum[i-1]%mod-((b[i]*suma[i-1]%mod+a[i]*sumb[i-1]%mod)%mod)+mod)%mod)%mod; printf("%d\n",ans); return 0; }
本文作者:南风未起
本文链接:https://www.cnblogs.com/jiangchen4122/p/16849083.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步