poj 3211 Washing Clothes(0/1背包)

简介: 点击打开链接poj 3211 思路: 0/1背包 分析: 1 题目要求洗完n件衣服所需的最少的时间,并且必须洗完一种颜色才能跳到下一种 2 仔细想想这一题和uva上面的一道分金币非常的相似,由于要求必须洗完一种颜色才能跳到下一种,那么我们...

点击打开链接poj 3211

思路: 0/1背包
分析:
1 题目要求洗完n件衣服所需的最少的时间,并且必须洗完一种颜色才能跳到下一种
2 仔细想想这一题和uva上面的一道分金币非常的相似,由于要求必须洗完一种颜色才能跳到下一种,那么我们只要使得洗每一种颜色的时间最少那么总的就最少,那怎样才能够最少的时间呢?也就是要求两个人的时间差最小(也就相当于一个人用一半的时间去能够洗的最多的衣服),那么就转化为0/1背包的思想
3 做m次的dp然后求和即可

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int N = 15;
const int MAXN = 100010;

int m , n;
int w[N][N] , pos[N];
int sum[N] , dp[MAXN];
char color[N][N];

int returnIndex(char *str){
    for(int i = 1 ; i <= m ; i++)
        if(!strcmp(str , color[i]))
            return i;
}

int solve(){
    int ans = 0;
    for(int i = 1 ; i <= m ; i++){
        memset(dp , 0 , sizeof(dp)); 
        for(int j = 1 ; j <= pos[i] ; j++)
            for(int k = sum[i]/2 ; k >= w[i][j] ; k--)
                dp[k] = max(dp[k] , dp[k-w[i][j]]+w[i][j]); 
        ans += sum[i]-dp[sum[i]/2];
    }
    return ans;
}

int main(){
    char str[N];
    int x;
    while(scanf("%d%d" , &m , &n) && n+m){
        for(int i = 1 ; i <= m ; i++)
            scanf("%s" , color[i]); 
        memset(pos , 0 , sizeof(pos));
        memset(sum , 0 , sizeof(sum));
        for(int i = 1 ; i <= n ; i++){
            scanf("%d %s" , &x , str); 
            int index = returnIndex(str);
            pos[index]++; 
            sum[index] += x;
            w[index][pos[index]] = x;
        }
        printf("%d\n" , solve());
    }
    return 0;
}




目录
相关文章
|
监控 安全 Dubbo
1.Spring Boot2.5实战课程大纲与新特性介绍|学习笔记
快速学习1.Spring Boot2.5实战课程大纲与新特性介绍。
270 0
1.Spring Boot2.5实战课程大纲与新特性介绍|学习笔记
|
Java Spring 应用服务中间件
纠错帖:Zuul & Spring Cloud Gateway & Linkerd性能对比
原文:http://www.itmuch.com/spring-cloud-sum/performance-zuul-and-gateway-linkerd/ ,转载请说明出处。
2524 0
|
网络协议 关系型数据库 MySQL
Docker系列教程22-docker-compose.yml常用命令
原文:http://www.itmuch.com/docker/22-docker-compose-yml-commands/ ,转载请注明出处。 docker-compose.yml是Compose的默认模板文件。
3806 0
|
Java Spring
Spring Cloud Edgware新特性之六:Artifact ID变更
本博客由周立创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
1152 0
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
686 23
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
14天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1122 110