hdu5360(优先队列)
来源:互联网 发布:玫瑰花淘宝 编辑:程序博客网 时间:2024/05/29 08:51
链接:点击打开链接
题意:n个人去旅游,给出每个人可以参加旅游的最小人数和最大人数,只有在这个区间内这个人才可以参加,问最多参加的人数,并输出任意一种方案
代码:
#include <queue>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;struct node{ int r,id; friend bool operator<(node a,node b){ return a.r>b.r; }};int l[100005],r[100005],sign[100005];int main(){ int t,n,i,j; scanf("%d",&t); while(t--){ queue<int> ans; priority_queue<node> tmp,q[100005]; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&l[i]); for(i=1;i<=n;i++) scanf("%d",&r[i]); for(i=1;i<=n;i++){ //把每个左区间存起来 q[l[i]].push((node){r[i],i}); sign[i]=0; } i=0; while(i<=n){ //每次进一个,然后选r小的先出队列 while(q[i].size()){ //然后把左区间符合的都压入队列 tmp.push(q[i].top()); q[i].pop(); } if(tmp.size()==0) break; if(tmp.top().r>=i){ ans.push(tmp.top().id); i++; } tmp.pop(); } printf("%d\n",ans.size()); while(ans.size()){ sign[ans.front()]=1; printf("%d ",ans.front()); ans.pop(); } for(i=1;i<=n;i++) if(!sign[i]) printf("%d ",i); printf("\n"); } return 0;}
0 0
- hdu5360优先队列
- hdu5360(优先队列)
- hdu5360--Hiking(优先队列)
- [贪心+优先队列] hdu5360多校联合 第六场 Hiking
- 2015 多校联赛 ——HDU5360(贪心+优先队列)
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 优先队列
- 各种流行深度学习构架的性能对比
- Java四种线程池的使用
- android studio ndk 环境搭建
- CSS3 渐变(Gradients)
- leetcode No36. Valid Sudoku
- hdu5360(优先队列)
- 一步一步演示神经网络回馈算法过程
- PHP面向对象总结
- Android来电监听和去电监听
- Struts2学习之常用配置及action接收参数
- 是这么设计Android项目架构的
- Android布局(LinearLayout)
- python urllib库使用
- 安装laravel及其初步使用