http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=14 按结束时间升序排序,再安排即可#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct action { int st; int ed; }a[10000]; bool cmp(action x, action y) { if(x.ed < y.ed) return true; return false; } int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&a[i].st,&a[i].ed); sort(a,a+n,cmp); int cnt=1; for(int i=0;i<n;i++) { //如果结束时间大于开始时间 for(int j=i;j<n;j++) { if(a[i].ed<a[j].st) { cnt++; i=j; } } } printf("%d\n",cnt); } }
查看原文:http://blog.mtjmtj7.cn/?p=266
会场安排问题
最新推荐文章于 2023-05-16 18:38:16 发布