poj 3093
来源:互联网 发布:我国经济数据 编辑:程序博客网 时间:2024/06/05 22:44
Poj3093 (背包)
题目大意:有V件物品,每件物品有大小,有一个大小为D的背包,求极大背包方案数
思路:枚举剩下的物品是什么,小于它的一定会选择,大于的做背包
一个优化:从大到小枚举
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)using namespace std;typedef long long ll;const int N=1e3+10;int v[N],d,n,T,kase;ll f[N],sum;ll solve(){ if(v[1]>d) return 0; ll ans=0; for(int i=n;i>=1;i--) { sum-=v[i]; for(int j=0;j<v[i]&&d-sum-j>=0;j++) ans+=f[d-sum-j]; for(int j=d;j>=v[i];j--) f[j]+=f[j-v[i]]; } return ans;}int main(){ scanf("%d",&T); while(T--) { memset(f,0,sizeof(f)); sum=0; f[0]=1; scanf("%d%d",&n,&d); fo(i,1,n) {scanf("%d",&v[i]);sum+=v[i];} sort(v+1,v+1+n); printf("%d %lld\n",++kase,solve()); } return 0;}
阅读全文
0 0
- poj 3093
- poj 3093 01背包
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- 设计模式学习—备忘录模式(Memento Design Pattern)
- 适配器模式
- MySQL索引背后的数据结构及算法原理
- 内嵌函数和闭包
- 来源于数据结构与算法分析中的折半查找
- poj 3093
- [POJ](3984)迷宫问题 ---BFS+队列模拟(图+队列模拟)***
- Cloudera Manager5.11.0离线安装详细步骤
- 大整数乘法 java实现
- Linux防火墙iptables规则设置
- 关于react-native对当前系统网络的判断
- 使用表情过滤工具在魅族手机和华为手机上会报错的问题
- 关于R语言的绘图函数[转]
- ubuntu 终端默认的背景色RGB