bzoj2287 [POJ Challeng]消失之物(01背包)
来源:互联网 发布:it骗婚 编辑:程序博客网 时间:2024/05/29 10:10
count[i][j]:
1. j>=v[i],count[i][j]=f[j]-count[i][j-v[i]]。
用能装满j的所有方案,减去用了第i个物品的方案(即不用第i个物品装满j-v[i]的所有方案)
2. j< v[i],count[i][j]=f[j].
j< v[i],能装满j的所有方案一定都没有用第i个物品。
tips:取模的时候注意减成负数了的情况。。
#include <cstdio>#include <cstring>#define N 2005int n,m,v[N],f[N],c[N];inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int main(){// freopen("a.in","r",stdin); n=read();m=read(); for(int i=1;i<=n;++i) v[i]=read(); f[0]=1; for(int i=1;i<=n;++i) for(int j=m;j>=v[i];--j) f[j]=(f[j]+f[j-v[i]])%10; for(int i=1;i<=n;++i){ memset(c,0,sizeof(c));c[0]=1; for(int j=1;j<=m;++j) c[j]= j>=v[i]?f[j]-c[j-v[i]]:f[j],c[j]=(c[j]+10)%10; for(int j=1;j<=m;++j) printf("%d",c[j]);puts(""); } return 0;}
阅读全文
0 0
- bzoj2287 [POJ Challeng]消失之物(01背包)
- 【BZOJ2287】【POJ Challenge】消失之物(DP,背包)
- [bzoj2287]【POJ Challenge】消失之物 背包DP
- bzoj2287【POJ Challenge】消失之物 背包dp
- 【bzoj2287】 消失之物 背包dp+dp
- bzoj2287【POJ Challenge】消失之物
- 【bzoj2287】【POJ Challenge】消失之物
- BZOJ2287: 【POJ Challenge】消失之物
- bzoj2287【POJ Challenge】消失之物
- BZOJ2287 [POJ Challenge]消失之物
- bzoj2287【POJ Challenge】消失之物 ( 背包DP+补集转化 )
- 旧题再做【bzoj2287】【[pojchallenge]消失之物】分治背包
- 【BZOJ2287】【POJChallenge】消失之物(权限题)
- BZOJ 2287 POJ Challenge 消失之物 分治+背包
- BZOJ 2287: 【POJ Challenge】消失之物 背包dp
- bzoj 2287: 【POJ Challenge】消失之物 生成函数+背包
- BZOJ 2287【POJ Challenge】消失之物 背包DP
- bzoj 2287 【POJ Challenge】消失之物 背包动规
- 基础数论算法(三) 逆元和gcd的几道题
- Echarts数据可视化series-radar雷达图,开发全解+完美注释
- leetcode 202. Happy Number
- log4j实战篇
- 大话数据结构 code 第七章 08最短路径_Floyd
- bzoj2287 [POJ Challeng]消失之物(01背包)
- Xcode 8制作framework步骤
- 多表查询SQL优化
- 使用tensorflow objet_detection API 实现遥感影像飞机模型识别全过程
- [LeetCode] 434. Number of Segments in a String
- 面向接口编程
- KMP算法(研究总结,字符串)
- [unity] NavMesh 寻路 贴边走的问题 优化。
- [LeetCode] 383. Ransom Note