Washing Clothes
Time Limit: 1000MS   Memory Limit: 131072K
Total Submissions: 9654   Accepted: 3095

Description

Dearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a beautiful and hard-working girlfriend to help him. The clothes are in varieties of colors but each piece of them can be seen as of only one color. In order to prevent the clothes from getting dyed in mixed colors, Dearboy and his girlfriend have to finish washing all clothes of one color before going on to those of another color.

From experience Dearboy knows how long each piece of clothes takes one person to wash. Each piece will be washed by either Dearboy or his girlfriend but not both of them. The couple can wash two pieces simultaneously. What is the shortest possible time they need to finish the job?

Input

The input contains several test cases. Each test case begins with a line of two positive integers M and N (M < 10, N < 100), which are the numbers of colors and of clothes. The next line contains M strings which are not longer than 10 characters and do not contain spaces, which the names of the colors. Then follow N lines describing the clothes. Each of these lines contains the time to wash some piece of the clothes (less than 1,000) and its color. Two zeroes follow the last test case.

Output

For each test case output on a separate line the time the couple needs for washing.

Sample Input

3 4
red blue yellow
2 red
3 blue
4 blue
6 red
0 0

Sample Output

10

Source

 
中文翻译:
 
洗衣服
时间限制:1000毫秒   内存限制:131072 k
总提交:9654年   接受:3095年

描述

Dearboy最近太忙了,现在他有一大堆衣服要洗。幸运的是,他有一个漂亮的和勤奋的女朋友去帮助他。品种的衣服颜色但每一块可以被看作是只有一种颜色。为了防止衣服染色在混合颜色,Dearboy和他的女友不得不洗完所有的衣服一个颜色之前的另一种颜色。

从经验Dearboy知道每件衣服需要多久一个人洗。每一块将被清洗Dearboy或女友但不是他们两人。这对夫妇可以同时洗两块。什么是他们所需要的最短的时间内完成这项工作吗?

输入

输入包含多个测试用例。每个测试用例开始于一条线的两个正整数M和N(M < 10 N < 100),衣服的颜色和数量。下一行包含字符串不超过10个字符,不含空格,这颜色的名称。然后描述衣服的N行。文件中的每一行包含的时间洗一些衣服(小于1000)和它的颜色。两个0跟随最后一个测试用例。

输出

为每个测试用例输出一个单独的行上这对夫妇需要清洗的时间。

样例输入

3 4
red blue yellow
2 red
3 blue
4 blue
6 red
0 0

样例输出

10

 
题解:

AC代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
struct node{
int t;
char c[];
}col[];
char color[][];
int n,m,ans,sum[],f[];
int main(){
while(scanf("%d%d",&m,&n)==){
if(!n||!m) break;
memset(sum,,sizeof sum);
for(int i=;i<=m;i++) scanf("%s",color[i]);
for(int i=;i<=n;i++){
scanf("%d%s",&col[i].t,col[i].c);
for(int j=;j<=m;j++){
if(!strcmp(col[i].c,color[j])){
sum[j]+=col[i].t;break;//统计同一种颜色衣服的件数
}
}
}
ans=;
for(int i=;i<=m;i++){//求标记为i的颜色的时间
for(int j=;j<=sum[i]>>;j++) f[j]=;
for(int j=;j<=n;j++){
if(!strcmp(col[j].c,color[i])){
for(int v=sum[i]>>;v>=col[j].t;v--){
f[v]=max(f[v],f[v-col[j].t]+col[j].t);
}
} }
ans+=sum[i]-f[sum[i]>>];
}
printf("%d\n",ans);
}
return ;
}

poj3211的更多相关文章

  1. POJ3211 Washing Clothes[DP 分解 01背包可行性]

    Washing Clothes Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9707   Accepted: 3114 ...

  2. poj3211 Washing Clothes

    Description Dearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a ...

  3. POJ3211(trie+01背包)

    Washing Clothes Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9384   Accepted: 2997 ...

  4. POJ3321Apple Tree[树转序列 BIT]

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 26995   Accepted: 8007 Descr ...

  5. poj 01背包

    首先我是按这篇文章来确定题目的. poj3624 Charm Bracelet 模板题 没有要求填满,所以初始化为0就行 #include<cstdio> #include<algo ...

  6. poj3211Washing Clothes(字符串处理+01背包) hdu1171Big Event in HDU(01背包)

    题目链接: id=3211">poj3211  hdu1171 这个题目比1711难处理的是字符串怎样处理,所以我们要想办法,自然而然就要想到用结构体存储.所以最后将全部的衣服分组,然 ...

随机推荐

  1. StringUtils 字符串工具类

    package com.thinkgem.jeesite.common.utils; import java.io.File; import java.io.IOException; import j ...

  2. VNC 抓取远程桌面

    VNC (Virtual Network Computing)是虚拟网络计算机的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNI ...

  3. 一步步学Mybatis-告别繁琐的配置之Mybatis配置文件生成工具 (7)

    今年是2013年的杀青之日,前几天由于比较忙,没有及时更新本篇的最后一篇东西,前六篇中我们主要都是采用手动配置相关的Mybatis映射文件与相应的接口类与实体类.当然如果在真正的使用过程中,由于业务的 ...

  4. BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解

    昨天公布了BackTrack5 (BT5)无线weppassword破解教程之minidwep-gtk破解法一文,对BT5下破解wep无线password的简单方法做了介绍,今天奶牛为朋友们介绍下怎样 ...

  5. vs2013 设置为中文版

  6. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

  7. php-cli模式学习(PHP命令行模式)(转)

    之前知道php—cli模式是一种类似shell命令式的执行php程序,不过一直以为这个是一种落后的方式,应该没有什么意义,因为从没有遇到过使用这个cli模式编程的.不过今天遇到了使用cli模式的应用. ...

  8. UIStoryboard

    UIStoryboard 目录 概述 Storyboard的创建 Storyboard中的页面跳转 文件内跳转 文件外跳转 Segues 不同类型的视图控制器在UIStoryboard上的实现 概述 ...

  9. mysql 升级方法

    Performing an In-place Upgrade This section describes how to perform an in-place upgrade. Review Bef ...

  10. How does a relational database work

    http://blog.jobbole.com/100349/ http://coding-geek.com/how-databases-work/