【背包+阈值优化】51Nod 1597 有限背包计数问题
来源:互联网 发布:java管理平台 编辑:程序博客网 时间:2024/06/15 00:22
题面在这里
显然,对于小于
对于大于
很好转移吧……
示例程序:
#include<cstdio>#include<cmath>#include<cstring>typedef long long ll;const int maxn=100005,maxs=320,tt=23333333;int n,s,f[2][maxn],g[2][maxn],tem[maxn];inline void Madd(int &x,int y) {if ((x+=y)>=tt) x-=tt;}int main(){ scanf("%d",&n);s=sqrt(n); f[0][0]=1; for (int i=1;i<=s;i++){ memset(tem,0,sizeof(tem)); for (int j=0;j<=n;j++){ Madd(tem[j%i],f[i&1^1][j]); f[i&1][j]=tem[j%i]; if (j-i*i>=0) Madd(tem[j%i],tt-f[i&1^1][j-i*i]); } } g[0][0]=1;int ans=f[s&1][n]; for (int i=1;i<=s;i++){ for (int j=0;j<i;j++) g[i&1][j]=0; for (int j=i;j<=n;j++){ g[i&1][j]=g[i&1][j-i]; if (j>s) Madd(g[i&1][j],g[i&1^1][j-s-1]); Madd(ans,(ll)g[i&1][j]*f[s&1][n-j]%tt); } } printf("%d",ans); return 0;}
阅读全文
1 0
- 【背包+阈值优化】51Nod 1597 有限背包计数问题
- 51nod 1597 有限背包计数问题[dp][阈值]
- 【阈值优化+背包】51Nod1597[有限背包计数问题]题解
- 51nod 1597 有限背包计数问题
- 51Nod-1597-有限背包计数问题
- [背包DP || 多项式] 51Nod 1597 有限背包计数问题
- 51nod 1597 有限背包计数问题 dp
- [DP] 51Nod 1597 有限背包计数问题
- [DP]51 Nod 1597——有限背包计数问题
- [背包DP][小技巧] LOJ#6089. 小 Y 的背包计数问题 && 51NOD 1597 有限背包计数问题
- 1597 有限背包计数问题
- 有限背包计数问题
- 51nod 1201[整数划分] 1259[整数划分V2] 1597 [有限背包计数问题]
- 51nod1597 有限背包计数问题
- 【51nod1597】【DP】有限背包计数问题
- [51nod1597] 有限背包计数问题
- 有限背包计数问题 (分类dp)
- 51Nod-背包问题V2(多重背包+二进制优化)
- 1.twosum
- 协同过滤算法
- css url()路径描述方法
- HDOJ 2080 夹角有多大II
- 二维码
- 【背包+阈值优化】51Nod 1597 有限背包计数问题
- 【51Nod1525】重组公司
- JS JSON
- 初识Java内存区域和对象的创建
- hdfs客户端上传文件追加出现的问题:
- 使用apriori算法进行关联分析
- c语言——面试之assert断言使用
- SDUT_3376_数据结构实验之查找四:二分查找
- 《Android 编程权威指南》第二版第九章每个RecyclerView占整个屏幕的错误