Codeforces 452D [模拟][贪心]
题意:
给你k件衣服处理,告诉你洗衣机烘干机折叠机的数量,和它们处理一件衣服的时间,要求一件衣服在洗完之后必须立刻烘干,烘干之后必须立刻折叠,问所需的最小时间。
思路:
1.按照时间模拟
2.若洗完的衣服或者烘干的衣服较多来不及进行下一个步骤,则从一开始就顺延洗衣服的时间,贪心的思想也是体现在这里。
3.关键在于烘干衣服的顺延如何处理,因为需要调整洗衣服的起始时间,其实我们只要对烘干衣服的时间进行顺延处理就可以了,因为即使没有调整洗衣服的起始时间,那么下次到了烘干衣服的时间的时候因为烘干衣服的数量仍然被占用,所以可以顺次延时洗衣服的起始时间。
4.一开始担心复杂度的问题,但是交了之后发现时间并不多...这个问题还在思考中...
#include<bits/stdc++.h>
using namespace std;
struct st{
long long time,num;
int id;
st(long long a,long long b,int c){
time=a;id=c;num=b;
}
};
bool operator < (const st &a,const st &b){
if(a.time!=b.time)
return a.time<b.time;
return a.id>b.id;
}
multiset<st>a;
int main()
{
int k,n1,n2,n3,t1,t2,t3;
scanf("%d%d%d%d%d%d%d",&k,&n1,&n2,&n3,&t1,&t2,&t3);
long long a1,a2;
a1=a2=0;
a.insert(st(t1,n1,1));
while(k>0){
st tmp=*a.begin();
a.erase(a.begin());
//printf("%d %lld %lld\n",tmp.id,tmp.time,tmp.num);
if(tmp.id==1){
if(n2){
a.insert(st(tmp.time+t2,min((long long)n2,tmp.num),2));
a.insert(st(tmp.time+t1,min((long long)n2,tmp.num),1));
}
if(tmp.num>n2){
a.insert(st(tmp.time+1,tmp.num-n2,1));
}
n2-=min((long long)n2,tmp.num);
}
else if(tmp.id==2){
if(n3){
a.insert(st(tmp.time+t3,min((long long)n3,tmp.num),3));
}
if(tmp.num>n3){
a.insert(st(tmp.time+1,tmp.num-n3,2));
}
n2+=min((long long)n3,tmp.num);
n3-=min((long long)n3,tmp.num);
}
else{
k-=tmp.num;
n3+=tmp.num;
if(k<=0){printf("%I64d\n",tmp.time);return 0;}
}
}
}
Codeforces 452D [模拟][贪心]的更多相关文章
- CodeForces - 158B.Taxi (贪心)
		
CodeForces - 158B.Taxi (贪心) 题意分析 首先对1234的个数分别统计,4人组的直接加上即可.然后让1和3成对处理,只有2种情况,第一种是1多,就让剩下的1和2组队处理,另外一 ...
 - Codeforces Round #375 (Div. 2) A B C 水 模拟 贪心
		
A. The New Year: Meeting Friends time limit per test 1 second memory limit per test 256 megabytes in ...
 - Codeforces Round #370 (Div. 2) A B C 水 模拟 贪心
		
A. Memory and Crow time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
 - Educational Codeforces Round 63 (Rated for Div. 2) B. Game with Telephone Numbers 博弈思维+模拟+贪心思维
		
题意:博弈题面 给出一个数字序列 (>=11) 有两个人任意删除数字 直到 数字只剩下11位 如果删除后的数字串开头是8那么就是第一个赢 否则就是第二个人赢 第一个人先手 数字序列一定是奇 ...
 - Codeforces Round #288 (Div. 2) C. Anya and Ghosts 模拟 贪心
		
C. Anya and Ghosts time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
 - Codeforces Round #482 (Div. 2) B、Treasure Hunt(模拟+贪心)979B
		
题目 大致题意 n表示要进行n次操作,接着给出三个字符串,表示三个人初始拥有的串.每次操作要替换字符串中的字母,询问最后在游戏中曾出现过的相同的子串谁最多. 思路 (1) 讨论最多的子串,肯定是全部 ...
 - Codeforces 980 并查集/模拟贪心最小字典序 找规律/数去除完全平方因子 逆思维倍增预处理祖先标记点
		
A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_bac ...
 - Codeforces 950C Zebras ( 贪心 && 模拟 )
		
题意 : 给出一个 01 串,要求你将其分隔出若干个子序列 ( 每个数字只能属于某一个子序列 ) ,子序列必须满足由 0 开头和结尾,且中间需 01 交替构成.若无法做到,则输出 -1. 分析 : ...
 - CodeForces 6C(贪心 + 模拟)
		
题目链接 思路如下 贪心的思想,⚠️女士优先的策略,当它们吃掉之前的物品所用的时间相同的时候,此时女士先开始 继续吃 题解如下 #include<iostream> using names ...
 
随机推荐
- python简单粗暴多进程之concurrent.futures
			
python在前面写过多线程的库threading: python3多线程趣味详解 但是今天发现一个封装得更加简单暴力的多进程库concurrent.futures: # !/usr/bin/pyth ...
 - SwiftyJSON 中文介绍
			
SwiftyJSON makes it easy to deal with JSON data in Swift. Why is the typical JSON handling in Swift ...
 - 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
			
用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...
 - window7 下 安装 apache24(httpd-2.4.10-x86-r2)加 php5.6(php-5.6.4-Win32-VC11-x86)加yaf(php_yaf-2.3.3-5.6-ts-vc11-x86)整合
			
window7 下 安装 apache24(httpd-2.4.10-x86-r2)加 php5.6(php-5.6.4-Win32-VC11-x86)加yaf(php_yaf-2.3.3-5.6-t ...
 - Jquery中的offset()和position()
			
今天遇到这个偏移量的问题,特做此记录.以便日后查看. 先看看这两个方法的定义. offset(): 获取匹配元素在当前视口的相对偏移. 返回的对象包含两个整形属性:top 和 left.此方法只对可见 ...
 - rsync 无密码 传输
			
1.通过ssh执行rsync(需要密码) 通过ssh帐户(需要密码)执行rsync,将文件同步镜像到远程服务器.下面这个例子将本地的/home/ramesh同步到远程目录/backup/ramesh( ...
 - Tomcat的startup.bat一闪而过问题的解决
			
问题描述:点击Tomcat的startup.bat,一闪而过. 问题分析: 1.Tomcat的startup.bat--->catalina.bat--->setclasspath.bat ...
 - Android二-.9.png
			
1.1px*1px,用于拉伸,应用于背景展示 2.一个复杂图片,拉伸纯色部分(上,左),不可拉伸部分,存放内容(下,右)
 - javascript实现继承的几种方式
			
原型链方式实现继承 function SuperType(){ this.property = true; this.colors = ['red','blue','green']; } SuperT ...
 - PLSQL_Oracle物化视图Material View的基本概念和用法 (概念)
			
2014-06-08 Created By BaoXinjian