博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3033
阅读量:7243 次
发布时间:2019-06-29

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

dp

View Code
1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn=10010; 6 int dp[11][10010]; 7 int belong[10010]; 8 int w[10010],v[10010]; 9 int flag[20]; 10 int main() 11 {
12 int n,m,k,i,j,x; 13 while(scanf("%d%d%d",&n,&m,&k)!=EOF) 14 {
15 memset(flag,0,sizeof(flag)); 16 for(i=1;i<=n;i++) 17 {
18 scanf("%d%d%d",&belong[i],&w[i],&v[i]); 19 flag[belong[i]]=1; 20 } 21 int vis=0; 22 for(i=1;i<=k;i++) 23 if(!flag[i]) 24 {
25 vis=1; 26 printf("Impossible\n"); 27 break; 28 } 29 if(vis) continue; 30 memset(dp,0,sizeof(dp)); 31 for(i=1;i<=k;i++) 32 {
33 for(x=1;x<=n;x++) 34 {
35 if(belong[x]==i) 36 {
37 for(int j=m;j>=w[x];j--) 38 {
39 dp[i][j]=max(dp[i][j],dp[i][j-w[x]]+v[x]); 40 dp[i][j]=max(dp[i][j],dp[i-1][j-w[x]]+v[x]); 41 } 42 } 43 } 44 } 45 int ans=0; 46 for(i=0;i<=m;i++) 47 if(dp[k][i]>ans) 48 ans=dp[k][i]; 49 if(ans==0) printf("Impossible\n"); 50 else printf("%d\n",ans); 51 } 52 return 0; 53 }

转载于:https://www.cnblogs.com/xuschang-93/archive/2012/03/19/2405460.html

你可能感兴趣的文章
【笔记】如何做好一场技术演讲——观点烙刻
查看>>
Laravel学习一
查看>>
快速搭建discuz论坛系统
查看>>
分享50张非常精美的Apple主题桌面壁纸(下篇)
查看>>
修改mysql5.7.16的密码
查看>>
923A - 你应该看的书
查看>>
storyboard强大利器
查看>>
LAMP论坛搭建
查看>>
我的梦里
查看>>
js中cookie存储以后产生乱码
查看>>
Domino9.0.1FP3下的LDAP、Kerbors详细配置介绍及证书申请颁发
查看>>
HTML5移动游戏平台大战,技术不再主导流量
查看>>
详述Linux配置静态IP、设置DNS和主机名
查看>>
第12课:Spark Streaming源码解读之Executor容错安全性
查看>>
python-高阶函数(函数做返回值)
查看>>
我的友情链接
查看>>
入住51
查看>>
Linux中man命令
查看>>
如何自定义UIBarBtton
查看>>
python学习笔记-Day05-第一部分(再谈装饰器)(递归)
查看>>