设为首页 加入收藏

TOP

poj 3211 Washing Clothes 0-1背包
2015-07-20 17:24:37 来源: 作者: 【 】 浏览:1
Tags:poj 3211 Washing Clothes 0-1 背包

题意:

有2个人洗n件衣服,每件衣服有需要洗的时间和颜色,只能相同颜色的衣服两人一起洗,求洗完衣服的最少时间。

分析:

0-1背包判断某个重量是否能达到。

代码:

//poj 3211
//sep9
#include 
  
   
#include 
    #include 
    
      using namespace std; const int maxN=128; int m,n; map
     
       name; int v[maxN][maxN]; int dp[100028]; int pack(int k) { memset(dp,0,sizeof(dp)); dp[0]=1; int i,j,tot=0; for(i=1;i<=v[k][0];++i) tot+=v[k][i]; int ans=tot; for(i=1;i<=v[k][0];++i){ int w=v[k][i]; for(j=tot;j>=w;--j){ dp[j]=max(dp[j],dp[j-w]); if(dp[j]==1) ans=min(ans,max(j,tot-j)); } } return ans; } int main() { while(scanf("%d%d",&m,&n)==2){ if(m==0&&n==0) break; while(m--) scanf("%*s"); int num=0; name.clear(); for(int i=0;i
      
       >x>>a; if(name[a]==0){ name[a]=++num; v[name[a]][0]=0; } v[name[a]][++v[name[a]][0]]=x; } int ans=0; for(int i=1;i<=num;++i) ans+=pack(i); printf("%d\n",ans); } return 0; } 
      
     
    
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇NYOJ 476 谁是英雄(唯一素因子分.. 下一篇POJ 3254 Corn Fields (状压DP+滚..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)