POJ3190——Stall Reservations(贪心)
来源:互联网 发布:java二维数组定义方法 编辑:程序博客网 时间:2024/05/22 15:09
题目链接
题目大致是说有一群奶牛要挤牛奶,但是她们只在规定的时间区间内挤牛奶,而且一台挤奶机只能给一头牛挤牛奶,问最少需要几台挤奶机才能给全部的牛挤牛奶,并且输出每头牛是在第几台挤奶机挤的牛奶,第一行输入奶牛数,然后按顺序输入每头奶牛的挤牛奶时间区间。输出则是第一行输出最少的挤奶机数。然后一次输出每头奶牛是在第几台挤奶机挤的奶。首先对挤牛奶区间sort一下,优先按区间左端点从小到大sort,然后在左端点相同的情况下按右端点从下到大排序,然后flag记录每头奶牛对应的挤奶机标号。对优先队列的<号重载实现优先将队列中右端点较小者返回。然后再模拟安排过程(即优先放起始时间早的,若现在有空闲的挤奶机则放在这台挤奶机挤奶,否则另外再开一台)即可。
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>using namespace std;struct node{ int a; int d; int num; node() { a=0; d=0; num=0; } bool operator < (const node &t)const { if(d==t.d)return a>t.a; return d>t.d; }} s[50005];bool cmp(node x,node y){ if(x.a!=y.a)return x.a<y.a; return x.d<y.d;}priority_queue<node> q;int flag[50005]={0};int main(){ //freopen("in.in","r",stdin); int n; while(scanf("%d",&n)!=EOF) { memset(s,0,sizeof(0)); memset(flag,0,sizeof(flag)); for(int i=0; i<n; i++) { scanf("%d%d",&s[i].a,&s[i].d); s[i].num=i; } sort(s,s+n,cmp); /*for(int i=0;i<n;i++) printf("%d %d\n",s[i].a,s[i].d);*/ while(!q.empty())q.pop(); flag[s[0].num]=1; q.push(s[0]); int ans=1; for(int i=1;i<n;i++) { if(q.top().d<s[i].a)//此处是<号而不是<=号,不然会跪 { flag[s[i].num]=flag[q.top().num]; q.pop(); }else { ans++; flag[s[i].num]=ans; } q.push(s[i]); } printf("%d\n",ans); for(int i=0;i<n;i++) printf("%d\n",flag[i]); } return 0;}
0 0
- POJ3190——Stall Reservations(贪心)
- POJ3190 Stall Reservations 贪心
- POJ3190 Stall Reservations 【贪心】
- Stall Reservations - POJ3190 贪心
- POJ3190:Stall Reservations(贪心)
- #POJ3190#Stall Reservations(贪心 -> 冲突分配)
- POJ3190 Stall Reservations (贪心+优先队列)
- POJ3190-Stall Reservations
- POJ3190 Stall Reservations
- poj Stall Reservations(贪心)
- C - Stall Reservations 贪心算法
- Stall Reservations - POJ 3190 贪心
- POJ 3190 - Stall Reservations(贪心)
- Stall Reservations (poj 3190 贪心)
- poj 3190 Stall Reservations(贪心)
- poj 3190 Stall Reservations 贪心
- POJ-3190 Stall Reservations(贪心)
- POJ 3190 Stall Reservations(贪心)
- Android中的DrawRect()参数解析
- list control
- 离线安装CDH
- HTTP请求头详解
- 关于mysql的sql语句的汇总(学习笔记)03(mysql高级应用)
- POJ3190——Stall Reservations(贪心)
- JS--刷新页面的函数
- Ubuntu16.04使用vpn
- 802.11协议精读1:学习资料整理
- JS--页面之间传递信息
- BIO、NIO、AIO的编程对比
- 在代码中控制UI界面
- 去除表单中父级为隐藏的表单元素
- Afinal-click-使用,布局include