BZOJ 3326: [Scoi2013]数数
2024-09-07 20:53:44
数位DP,然而式子真的复杂
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int mod=20130427;
int ans,B,N,A[100005],Suf[100005][2],Szsuf[100005][2],Sum[100005][2],a[100005];
int calc(){
int suf=0,sum=0;
for (int i=1; i<=N; i++){
suf=(1ll*suf*B%mod+1ll*A[i]*i%mod)%mod;
(sum+=suf)%=mod;
}
return sum;
}
int solve(){
for (int i=1; i<=N; i++){
int C=B;
if (i==1) C=0;
a[i]=1ll*(C-1)+1ll*a[i-1]*B%mod+A[i];
a[i]%=mod;
Szsuf[i][0]=Szsuf[i-1][0]+1;
Szsuf[i][0]%=mod;
Szsuf[i][1]=1ll*C-1+1ll*(Szsuf[i-1][1]+a[i-1])*B%mod+1ll*(Szsuf[i-1][0]+1)*A[i]%mod;
Szsuf[i][1]%=mod;
Suf[i][1]=1ll*Suf[i-1][1]*B%mod+1ll*A[i]*Szsuf[i][0]%mod;
Suf[i][1]%=mod;
Suf[i][0]=1ll*C*(C-1)/2%mod+1ll*Suf[i-1][0]*B%mod*B%mod+1ll*B*(B-1)/2%mod*(Szsuf[i-1][1]+a[i-1])%mod;
Suf[i][0]%=mod;
Suf[i][0]+=1ll*Suf[i-1][1]*B%mod*A[i]%mod+1ll*A[i]*(A[i]-1)/2%mod*Szsuf[i][0]%mod;
Suf[i][0]%=mod;
Sum[i][1]=Sum[i-1][1]+Suf[i][1];
Sum[i][1]%=mod;
Sum[i][0]=1ll*Sum[i-1][0]*B%mod+1ll*Sum[i-1][1]*A[i]%mod+Suf[i][0];
Sum[i][0]%=mod;
}
return (Sum[N][0]+Sum[N][1])%mod;
}
int main(){
scanf("%d",&B);
scanf("%d",&N);
for (int i=1; i<=N; i++) scanf("%d",&A[i]);
ans-=solve();
ans+=calc();
scanf("%d",&N);
for (int i=1; i<=N; i++) scanf("%d",&A[i]);
ans%=mod;
ans+=solve();
(ans+=mod)%=mod;
printf("%d\n",ans);
return 0;
}
最新文章
- SqlServer时间戳与普通格式的转换
- Tomca不生产日志 (原创帖,转载请注明出处)
- Oracle 违反协议 OALL8 处于不一致状态
- 彻底弄懂js循环中的闭包问题
- 图书管理系统——APP平台开发
- nyoj_148_fibonacci数列(二)_矩阵快速幂
- 微信公开课发布微信官方教程:教你用好微信JS-SDK接口
- log2取整效率测试
- C++Primer 第一章
- jQuery formValidator表单验证插件常见问题
- Linux 删除文件夹和文件的命令
- oc-23-static
- C++调用C#生成的DLL文件的各种问题
- ARM Linux 如何--注册和触发--软中断
- Activti跳过中间节点的helloworld实例程序
- cookie 与 session
- hdu3037 Saving Beans
- ELK 架构之 Logstash 和 Filebeat 安装配置
- Mapreduce操作HBase
- Kylin介绍2
热门文章
- winform代码生成器(一)
- 选择控件js插件和使用方法
- [转]兼容各个浏览器的H.264播放: H.264+HTML5+FLOWPLAYER+WOWZA+RMTP
- JAVA代码之斗地主发牌
- Kendo 单页面应用(一)概述
- JDK8下的HashMap有什么特别之处?
- 【extjs6学习笔记】1.8 初始: ExtJS命名约定
- EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)
- mysql主从设置windows
- 验证fgets末尾自动添加的字符是'\0&#39; 还是 &#39;\n\&#39;?