博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces 383D Antimatter
阅读量:6657 次
发布时间:2019-06-25

本文共 875 字,大约阅读时间需要 2 分钟。

线性DP。

dp[i][j]表示以第i个数字为结尾的,字串和为j的有几种。

#include
#include
#include
#include
using namespace std;const long long mod=1e9+7;const int f=10000;const int maxn=1000+10;int n,a[maxn];long long dp[maxn][20*maxn];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); memset(dp,0,sizeof dp); for(int i=1;i<=n;i++) { for(int j=-f;j<=f;j++) { if(j-a[i]>=-f&&j-a[i]<=f) dp[i][j+f]=(dp[i][j+f]+dp[i-1][j-a[i]+f])%mod; if(j+a[i]>=-f&&j+a[i]<=f) dp[i][j+f]=(dp[i][j+f]+dp[i-1][j+a[i]+f])%mod; } dp[i][a[i]+f]++; dp[i][-a[i]+f]++; } long long ans=0; for(int i=1;i<=n;i++) ans=(ans+dp[i][f])%mod; printf("%lld\n",ans); return 0;}

 

转载于:https://www.cnblogs.com/zufezzt/p/5671761.html

你可能感兴趣的文章
多客户端项目的冗余服务器
查看>>
每周一荐:分布式计算的模式语言
查看>>
有向图的强连通分量
查看>>
js判断浏览器的版本(转)
查看>>
前几天入手一大菠萝,写个初始化教程
查看>>
C# DataTable常用方法总结
查看>>
leaflet入门(二)GeoJson
查看>>
HDU Problem 5631 Rikka with Graph【并查集】
查看>>
HDU Problem 5773 The All-purpose Zero 【LIS】
查看>>
【++】 MySQL5.7.10二进制方式的安装(glibc2.5 版本)
查看>>
【读书笔记】【物联网】《物物连起大世界---物联网的应用与前景》
查看>>
MyBaits开发入门一:一对一连表查询
查看>>
博弈总结
查看>>
PS 之图片中抠出大树
查看>>
Flutter-BLoC-第一讲
查看>>
ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作
查看>>
找到多个与名为“Home”的控制器匹配的类型。解决方法
查看>>
JavaScript对象
查看>>
CSS--宽度与高度
查看>>
使用openvswitch实现跨主机docker容器互联
查看>>