ZOJ 3721 Final Exam Arrangement 解题报告
2013-07-01 18:24
387 查看
题目
题意:
有一些考试,已知开始时间和结束时间,左闭右开,如果考试时间有重叠,则可以安排在同一天。求最少要安排几天,以及方案。
题解:
将时间点排序,从小到大排序,若有考试开始,则加入队列;若有考试结束,则将队列中的全部考试都安排在一天。
题意:
有一些考试,已知开始时间和结束时间,左闭右开,如果考试时间有重叠,则可以安排在同一天。求最少要安排几天,以及方案。
题解:
将时间点排序,从小到大排序,若有考试开始,则加入队列;若有考试结束,则将队列中的全部考试都安排在一天。
//Time:900ms //Memory:3508KB //Length:1453B #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #include <string> #include <vector> #include <map> #include <queue> #include <set> #include <sstream> #define DBLE 1e-8 #define PI 3.1415926535898 #define INF 1000000000 #define MAXN 200010 #define MP(x,y) (make_pair((x),(y))) #define FI first #define SE second using namespace std; bool vi[MAXN]; pair<int,int> pa[MAXN]; int arr[MAXN],top; int days[MAXN],dtop; int main() { //freopen("J:\\MyDocument\\Code\\input.txt","r",stdin); int n,sum; while(scanf("%d",&n)==1) { int a,b; top=0; sum=0,dtop=0; memset(vi,0,sizeof(vi)); for(int i=1;i<=n;++i) { scanf("%d%d",&a,&b); pa[top++]=MP(a,i); pa[top++]=MP(b,-i); } sort(pa,pa+top); top=0; for(int i=0,len=2*n;i<len;++i) if(pa[i].SE>0) arr[top++]=pa[i].SE,vi[pa[i].SE]=1; else if(vi[-pa[i].SE]) { ++sum; for(int j=0;j<top;++j) days[dtop++]=arr[j],vi[arr[j]]=0; days[dtop++]=-1; top=0; } printf("%d\n",sum); for(int i=0,s=0;i<dtop;++i) if(days[i]>0) printf("%s%d",s?" ":"",days[i]),s=1; else printf("\n"),s=0; printf("\n"); } return 0; }
相关文章推荐
- ZOJ 3721 Final Exam Arrangement 解题报告 (贪心)
- ZOJ 3721—— Final Exam Arrangement
- zoj 3721 Final Exam Arrangement【贪心】
- zoj 3721 Final Exam Arrangement【贪心】
- ZOJ-3721 Final Exam Arrangement 贪心
- ZOJ:3721 Final Exam Arrangement
- ZOJ 3721 Final Exam Arrangement(模拟+贪心)
- ZOJ 3721 Final Exam Arrangement (贪心)
- ZOJ 3721 Final Exam Arrangement(贪心)
- ZOJ 3717: Final Exam Arrangement
- ZOJ 1111 - Poker Hands 解题报告
- ZOJ 2562 More Divisors 解题报告(反素数)
- (转载)2016 China-Final 解题报告
- ZOJ 1914 Arctic Network(解题报告)
- ZOJ 3717 Balloon 解题报告
- ZOJ 解题报告索引
- ZOJ 1610 解题报告
- ZOJ 1635 - Directory Listing 解题报告
- ZOJ2112 Dynamic Rankings 解题报告【数据结构】【分块】
- ZOJ 3556 How Many Sets I 解题报告(数论)