UVAlive 5864 Register Allocation 题解
2013-07-21 22:15
239 查看
题目
Tri_integral Summer Training 4
题意:
有一些事件,已知发生的时间段(闭区间)。如果两个事件发生的时间没有交集,则可以安排在同一天,求至少要几天。
题解:
将所有事件插入set中,一个事件发生后,选择第一个在它结束后发生的事件,如果没有,开始新的一天。
Tri_integral Summer Training 4
题意:
有一些事件,已知发生的时间段(闭区间)。如果两个事件发生的时间没有交集,则可以安排在同一天,求至少要几天。
题解:
将所有事件插入set中,一个事件发生后,选择第一个在它结束后发生的事件,如果没有,开始新的一天。
//Time:26ms //Memory:0KB //Length:1047B #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> #include <set> #define MAXN 20010 #define INF 1000000007 #define MP(x,y) make_pair(x,y) #define FI first #define SE second using namespace std; int s[MAXN],f[MAXN]; bool vi[MAXN]; set<pair<int,int> > se; pair<int,int> pa[MAXN]; int main() { //freopen("/home/moor/Code/input","r",stdin); int ncase,n,top,ans,pre; scanf("%d",&ncase); while(ncase--) { memset(vi,0,sizeof(vi)); top=0; scanf("%d",&n); se.clear(); for(int i=1;i<=n;++i) { scanf("%d%d",&s[i],&f[i]); se.insert(MP(s[i],i)); } ans=0; while(se.size()) { ++ans; set<pair<int,int> > ::iterator ite=se.begin(); int to; while(ite!=se.end()) { to=f[ite->SE]; se.erase(ite); ite=se.upper_bound(MP(to,INF)); } } printf("%d\n",ans); } }
相关文章推荐
- UVALive 5864 - Register Allocation
- UVALive 5864 Register Allocation 解题报告
- UVALive 4881
- UVALive 3958 Weird Numbers (负进制数)
- UVALive 6910 Cutting Tree(并查集)
- UVA12068 UVALive3288 Harmonic Mean【分数】
- 指南 第三章 例题5 UVALive 3644 X-Plosives(并查集)
- UVALive 6886 Golf Bot 桶排+剪枝
- UVALive 6887 Book Club
- UVa live3415Guardian of Decency(二分最大匹配之最大独立点集)
- UVALive 3401 Colored Cubes
- UVALive 4885 Task 差分约束
- UVa Live-3357 Pinary(斐波那契+找规律)
- UVALive 3530 Martian Mining(贪心,dp)
- UVALive 3135--Argus+自定义优先队列的优先规则
- UVALive 3305 Tour(DP)
- Poj 3150/UVA 1386/UVALive 3704 Cellular Automaton 循环矩阵
- Exploring Pyramids UVALive - 3516 题解
- UVALive - 2572 Viva Confetti 极角排序
- POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)