51nod 1597 有限背包计数问题[dp][阈值]
来源:互联网 发布:java排序算法实现 编辑:程序博客网 时间:2024/06/07 14:32
居然是读阈(yu第四声)值…
对于大小
对于大小
最后合并一下
#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#define P 23333333#define N 100000#define LL long longusing namespace std;int n,sz,lst,nw,t,f[2][N+5],g[2][N+5],ans;int main() { scanf("%d",&n);sz=(int)sqrt(n); int lst=0,nw=1,s;f[0][0]=1; for(int i=1;i<=sz;++i,lst^=1,nw^=1) { memset(f[nw],0,sizeof(f[nw])); for(int j=0;j<i;++j) { s=0; for(int k=0;k*i+j<=n;++k) { s=(s+f[lst][k*i+j])%P; f[nw][k*i+j]=s; if(k>=i) s=(s-f[lst][(k-i)*i+j]+P)%P; } } } t=lst;ans=f[t][n]; g[0][0]=1,lst=0,nw=1; for(int i=1;i<=sz;++i,lst^=1,nw^=1) { memset(g[nw],0,sizeof(g[nw])); for(int j=sz+1;j<=n;++j) { g[nw][j]=g[lst][j-sz-1]; if(j>=i) g[nw][j]=(g[nw][j]+g[nw][j-i])%P; } for(int j=0;j<=n;++j) ans=(ans+(LL)f[t][j]*g[nw][n-j])%P; } printf("%d\n",ans);}
阅读全文
0 0
- 51nod 1597 有限背包计数问题[dp][阈值]
- 【背包+阈值优化】51Nod 1597 有限背包计数问题
- [背包DP || 多项式] 51Nod 1597 有限背包计数问题
- 51nod 1597 有限背包计数问题 dp
- [DP] 51Nod 1597 有限背包计数问题
- [DP]51 Nod 1597——有限背包计数问题
- 51nod 1597 有限背包计数问题
- 51Nod-1597-有限背包计数问题
- [背包DP][小技巧] LOJ#6089. 小 Y 的背包计数问题 && 51NOD 1597 有限背包计数问题
- 【阈值优化+背包】51Nod1597[有限背包计数问题]题解
- 【51nod1597】【DP】有限背包计数问题
- 51nod 1201[整数划分] 1259[整数划分V2] 1597 [有限背包计数问题]
- 1597 有限背包计数问题
- 有限背包计数问题 (分类dp)
- 有限背包计数问题
- 51nod1597 有限背包计数问题
- [51nod1597] 有限背包计数问题
- 51nod1597 有限背包计数问题[DP][分类讨论][前缀和]
- Linux安装程序包之Unable to locate package错误 解决办法
- (转)黑石帝国崛起的30年
- Tensorflow Win10 CPU版安装
- codeforce_876A_水
- 文章标题
- 51nod 1597 有限背包计数问题[dp][阈值]
- [坑] #定、引、公#理 杂记
- (面试很容易问)二分查找算法
- gcc及其选项详解
- 第五课:系统目录及ls·文件类型及alias命令介绍
- jupyter notebook 设置密码
- codeforces 812A Sagheer and Crossroads
- LeetCode学习(1) Reverse Words in a String
- 冒泡排序与函数指针.