CSUST选拔赛题解之-Problem B: 洗衣
2018-03-17 17:30
435 查看
Problem B: 洗衣
Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 147 Solved: 26
[Submit][Status][Web Board]
Description
durong有N件衣服要洗, 但是他的第i件衣服必须在[st, en) 时间洗, 同一洗衣机不能同时洗多件衣服,他想,要洗完N件衣服,至少需要多少个洗衣机呢?Input
多组输入第一行一个整数n(n <= 100000), 代表衣服的个数
接下来n行, 每行两个整数st, en(1 <= st < en <= 1000000000),代表第i件衣服在st开始洗,en洗完
Output
输出一个整数和换行符,代表至少需要的洗衣机个数Sample Input
3 1 2 3 4 2 8
Sample Output
2
HINT
解题思路:自己模拟下过程发现这是到贪心题,我们先把durong大佬所有要洗的衣服按洗的先后顺序排个序,也就是开始洗的时间从小到大,然后把开始洗时间相同的衣服按结束时间从小到大排个序,最后我们开始给durong大佬开始洗衣服,我们用multiset这个容器来装衣服结束的时间(正向迭代),当有新衣服来洗的时候,我们看容器里的第一个数据(也就是正在洗的衣服中最快洗完的那件)和它比较,看是否大于它,如果大于的话就把那件衣服拿出来,把这件衣服放进去,如果小于的话就直接把这件衣服放进去,最后输出整个洗衣过程中容器的大小的最大值(也就是某个时间同时在洗最大衣服数量)就是洗衣机的最大数量了!AC代码:
#include<stdio.h> #include<string.h> #include<iostream> #include<math.h> #include<queue> #include<map> #include<string> #include<algorithm> #include<set> #define N 100010 using namespace std; struct node { int st; //开始 int en; //结束 }clothes ; bool cmp(node a, node b) //自定义排序规则 { if(a.st == b.st) return a.en < b.en; return a.st < b.st; } int main() { int n, a , x; while(~scanf("%d", &n)) { int k = 0, ans = 0; for(int i = 0; i < n; i ++) { scanf("%d%d", &clothes[i].st, &clothes[i].en); } sort(clothes, clothes + n, cmp); multiset<int>mst; multiset<int>::iterator it; mst.clear(); mst.insert(clothes[0].en); //先把第一件衣服放进 if(n == 1) ans = 1; for(int i = 1; i < n; i ++) { it = mst.begin(); if(clothes[i].st < *it) //与最快洗完的比较 { mst.insert(clothes[i].en); }else { mst.insert(clothes[i].en); mst.erase(it); } x = mst.size(); ans = max(ans, x); } printf("%d\n", ans); } return 0; }
相关文章推荐
- CSUST选拔赛题解之-Problem E: 杜荣NB
- CSUST选拔赛题解之-Problem G: 括号匹配
- CSUST选拔赛题解之-Problem H: 逃出监狱
- CSUST选拔赛题解之-Problem I: 简单题
- CSUST选拔赛题解之-Problem A: 灾区重建
- CSUST选拔赛题解之-Problem C: 先有durong后有天
- CSUST选拔赛题解之-Problem F: 挑战迷宫
- Problem 1894 志愿者选拔
- 郑轻新生校赛和中工选拔赛题解
- 2013年暑假队内选拔赛题解2
- CHD 2016校内选拔赛题解
- SSL 2628——2012年佛山市GDOI选拔赛题 循环小数【数学】
- Fuzhou OJ Problem 1894 志愿者选拔
- fzoj Problem 1894 志愿者选拔 【单调队列】
- 2013年暑假队内选拔赛题解3
- SSL P2627 2012年佛山市GDOI选拔赛题 红蓝牌
- SSL 2627——2012年佛山市GDOI选拔赛题 红蓝牌
- SSL P2628 2012年佛山市GDOI选拔赛题 循环小数
- 蓝桥杯选拔赛题解
- 2015-年校内选拔-蓝桥杯C-(A组)赛题-dfs-7对数字