poj 3211 Washing Clothes
#include<iostream> //0-1背包问题#include<map>#include<vector>#include<string>using namespace std;int main(){int m,n,p,s[12],dp[200000],sum; //dp[x]=y表示总时间为x,其中在洗衣服的时间最多为 y int i,j,k;string color;while(cin>>m>>n&&m&&n) { map<string ,int> col; map<string ,int>::iterator ite; vector<int> vec[12];for(i=0;i<m;++i) { cin>>color; col.insert(make_pair(color,i)); } memset(s,0,sizeof(s)); sum=0;for(i=0;i<n;++i) { cin>>p>>color; ite=col.find(color); vec[ite->second].push_back(p); s[ite->second]+=p; }for(i=0;i<m;++i) //对每种颜色进行DP,容量c为s[i]/2,求出最接近c的值. { memset(dp,0,sizeof(dp)); int c=s[i]/2;for(j=0;j<vec[i].size();++j)for(k=c;k>=vec[i][j];--k) dp[k]=max(dp[k],dp[k-vec[i][j]]+vec[i][j]); sum+=s[i]-dp[c]; //s[i]-dp[c] 作为洗该颜色衣服的最短时间 } cout<<sum<<endl; }return 0;}//题意:两个人洗衣服,衣服的种类m种颜色,共有n件,每种颜色的衣服要分开洗,两个人只能同时洗同种颜色的衣服,只有等一种颜色的衣服洗完之后才能继续洗下一种。//所以只要分别求每种颜色衣服最大的洗完时间,然后相加即可!//对于每种不同颜色衣服,要尽量将不同衣服的不同浆洗时间均匀的分摊到两人身上,//即对于同颜色的衣服,假设一个人洗共耗时 T,则最短的时间便是其中有一个人的浆洗时间必须尽可能的接近T/2,//假设为t,则 T-t 便是最短的时间。这其实就是一个容量为T/2的背包问题。
转载于:https://www.cnblogs.com/mjc467621163/archive/2011/07/22/2114099.html
poj 3211 Washing Clothes相关推荐
- poj 3211 Washing Clothes (01)
http://poj.org/problem?id=3211 小两口洗衣服,只有一种颜色的衣服洗完才能洗下一种颜色,两人同时洗问需要的最小时间. 这里一种颜色的衣服所需的总时间可以求出,求出每种颜色衣 ...
- 【POJ - 3211】Washing Clothes (dp,0-1背包中点问题)
题干: Dearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a beautif ...
- 简单01背包 POJ3211 Washing Clothes 多种衣服分别dp
题目连接:http://poj.org/problem?id=3211 大意就是 一个人洗衣服,然后找他媳妇帮忙.有n种颜色的衣服,和m件衣服,每件衣服的颜色和洗出来的时间都会给出来.再洗的时候两个人 ...
- I - Washing clothes
题意: 有n个人会在某时间段来洗衣服,但是只有一台洗衣机,当洗衣机被用时其他人只能手洗,手洗时间为y(题目给定),洗衣机的时间为x,x∈[1,y],问当x分别为[1,y]时,最短的洗衣时间是多少? 题 ...
- DP分类题目 转载 《志当存高远》大神的 没有冒犯的意思 只是拿过来学习的
A.各种背包,就根据背包九讲的内容来做吧! --不会背包的可以边看背包九讲边练习 =========================================================== ...
- 暑假N天乐 —— 多重+分组背包及变形
[HDU-1114 Piggy-Bank] 完全背包裸题 http://acm.hdu.edu.cn/showproblem.php?pid=1114 一道迷路的完全背包跑到了这里来...相当于给定背 ...
- The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛
B.super_log (欧拉降幂) •题意 定一个一个运算log*,迭代表达式为 给定一个a,b计算直到迭代结果>=b时,最小的x,输出对m取余后的值 •思路 $log*_{a}(a^{a}) ...
- 动态规划 —— 背包问题
[概述] 背包问题(Knapsack problem)是一种组合优化的NP完全问题. 问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最 ...
- 线性筛法 欧拉筛c语言,[洛谷P3383][模板]线性筛素数-欧拉筛法
Hibernate Hql 总结 1.from子句 Hibernate中最简单的查询语句的形式如下: from eg.Cat该子句简单的返回eg.Cat类的所有实例. 通常我们不需要使用类的全限定名, ...
最新文章
- 假如 IDEA 也加入防沉迷功能...
- Confluence 6 数据库表-空间(Spaces)
- 安装VMwareTools后虚拟机中的鼠标滚轮无法使用解决办法
- 服务器升级中不能修改,windows10下更新服务器为何改不了了
- 自定义能够for each的类,C#,Java,C++,C++/cli的实现方法
- display: flex的兼容性写法
- 【学堂在线数据挖掘:理论方法笔记】第九天(4.3)
- c语言电子时钟设计报告,电子时钟设计实验报告.doc
- hp 官方没有针对 mac 的显示器驱动
- 税务Ukey如何进行批量开票
- 判断点在多边形内(射线法)
- ubuntu14.04安装skype4.3
- 转载:保护 Web 服务器的安全
- 免备案CDN免费 注册就送1T免费加速流量
- php抓取微信图片,PHP使用CURL采集微信图片(公众号)如何绕过防盗链系统?
- 一文详解光场深度估计
- mc通用计算机,《我的世界》里打造一台计算机有多难?复旦大神花一年终于实现!...
- Storyboard 解析
- 吞噬星空鸿蒙殿主,论《吞噬星空》是鸿蒙三部曲的最后一部!
- 【Bioconductor系列】如何用Bioconductor对基因组注释