【hdu 6000】Wash
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
因为每件衣服都是没有区别的。
只有洗衣机不同会影响洗衣时间。
那么我们把每台洗衣机洗衣的时间一开始都加入到队列中。
比如{2,3,6,7}
这个队列里面的数字就代表了如果某件衣服用这台洗衣机洗的话,要在什么时刻洗好。
对于每一件衣服i。
取出队列的头。
这里为2
那么就a[i] = 2,表示第i件衣服最早在a[i] = 2时刻洗好
然后再把2+t[i]加入到队列中即{3,2+t[i],6,7} (这里t[i]即等于2)
每次都取出队头即可。
然后是烘干的过程。
贪心的方法是,最晚洗好的那一件衣服
(这里因为我们第一步贪心的时候,是顺序枚举每一件衣服的,所以最晚洗好的那一件衣服一定是a[L])
一定要用最快的烘干机去烘干它。
按照这个去贪心就好。
这个过程其实不是很好理解
代码中 取出最快的烘干机之后,把{temp.first+temp.second,temp.second}再次加入到队列中,实际含义
其实就是说,如果有另外一件衣服还要用这台机器烘干的话,那么得多出来temp.second的时间,让给前面
的衣服->但是也可能不用让,不用让也没事,那么之前得到的一定是更大的值.
这点是需要动脑子的地方。
【代码】
/*
1.Shoud it use long long ?
2.Have you ever test several sample(at least therr) yourself?
3.Can you promise that the solution is right? At least,the main ideal
4.use the puts("") or putchar() or printf and such things?
5.init the used array or any value?
6.use error MAX_VALUE?
7.use scanf instead of cin/cout?
8.whatch out the detail input require
*/
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e6+10;
ll a[N];
int T,l,n,m;
priority_queue <pair<ll,ll> ,vector <pair<ll,ll> >,greater <pair<ll,ll> > > q;
int main(){
#ifdef LOCAL_DEFINE
freopen("F:\\c++source\\rush_in.txt", "r", stdin);
#endif
int kase = 0;
ios::sync_with_stdio(0),cin.tie(0);
cin >> T;
while (T--){
cin >> l >> n >> m;
for (int i = 1;i <= n;i++){
ll x;
cin >> x;
q.push({x,x});
}
for (int i = 1;i <= l;i++){
a[i] = q.top().first;
pair<ll,ll> temp = q.top();
q.pop();
temp.first += temp.second;
q.push(temp);
}
while (!q.empty()) q.pop();
for (int i = 1;i <= m;i++){
ll x;
cin >> x;
q.push(make_pair(x,x));
}
ll ma = 0;
for (int i = l;i >= 1;i--){
pair <ll,ll> temp = q.top();
q.pop();
ma = max(ma,a[i]+temp.first);
temp.first+=temp.second;
q.push(temp);
}
while (!q.empty()) q.pop();
cout << "Case #"<<++kase<<": "<<ma<<endl;
}
return 0;
}
【hdu 6000】Wash的更多相关文章
- 【HDU 6000】Wash(贪心)
Problem Description Mr.Panda is about to engage in his favourite activity doing laundry! He's brough ...
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】
[把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...
- 【HDU 2196】 Computer(树的直径)
[HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...
- 【HDU 2196】 Computer (树形DP)
[HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...
- 【HDU 5145】 NPY and girls(组合+莫队)
pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...
- 【hdu 3537】Daizhenyang's Coin
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...
- 【49.23%】【hdu 1828】Picture
Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...
随机推荐
- 外部数据库驱动程序XX中的意外错误
链接EXCEL打开报错 代码如下(Excel2003版本)出现这种错误 现在只需要更改 修改成 并且把导入版本修改
- tensorflow学习之路-----简单卷积神经网路
import tensorflow as tf#取数据,目的是辨别数字from tensorflow.examples.tutorials.mnist import input_data'''手动添加 ...
- Java源代码之集合框架(图)
百度"java 集合"图时.搜出来一张图.图蛮不错的.跟大家分享下.
- DB2物化视图(Materialized Query Tables, MQT)
DB2的物化视图MQT是基于查询结果定义的一个表,MQT中包括的数据来自MQT定义所基于的一个或多个表, 使用MQT能够显著提高查询的操作性能. 数据库的视图和MQT都是基于一个查询来定义的.每当视图 ...
- vue2留言板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 9.多彩的幕布layer
CCLayerCorlor bool CCLayerColor::initWithColor(const ccColor4B & color); bool CCLayerColor::init ...
- HttpWebRequest使用证书请求
HttpWebRequest使用证书请求 //是否使用证书 if (isUseCert) { stri ...
- excel的隔行插入
https://wenda.so.com/q/1523455238213064 #公式 IF(ISODD(ROW()),OFFSET($B$1,INT((ROW(A1)-1)/2),),OFFSET( ...
- 洛谷 P1850 换教室
P1850 换教室 题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n2n 节课程安排在 nn 个时间段上.在第 ii(1 \leq ...
- 《深入理解java虚拟机》:类的初始化
深入理解java虚拟机>:类的初始化 类从被载入到虚拟机内存中開始.到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.当中验证.准备.解析3个部分统称为 ...