设为首页 加入收藏

TOP

poj 3211 Washing Clothes 0-1背包
2015-07-20 17:24:37 来源: 作者: 【 】 浏览:2
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+滚..

评论

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

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)