模拟 优先队列(hdu 5437)
来源:互联网 发布:app数据查询 编辑:程序博客网 时间:2024/06/05 07:35
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5437
题意:一个派对,每次开一次门,开m次门,每次开门选择一定数量的人进来,先进来的满足带的礼物价值最大,当价值相同时要求来的早的人先进,最后一次全都可以进,给定查询,问第几个进去的人的名字。
题解:用优先队列模拟门口的情况,每次取出最符合条件的人进行标记
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<queue>using namespace std;char name[150050][205];struct Bt{ int value; int condition; bool operator < (Bt c) const//要求价值不同时价值优先,相同时来的时间优先 { if(c.value==value) { return c.condition<condition; } return value<c.value; }};Bt b[150050];typedef struct{ int l; int num;}LR;bool compare (LR a,LR b){ return a.l<b.l;}LR face[150050];int ans[150050];int main(){ int t; int k,m,q; scanf("%d",&t); while(t--) { scanf("%d %d %d",&k,&m,&q); for(int i=1;i<=k;i++) { scanf("%s %d",name[i],&b[i].value); b[i].condition=i; } for(int i=1;i<=m;i++)输入第几个人来时开门,进去几个 { scanf("%d %d",&face[i].l,&face[i].num); } sort(face+1,face+m+1,compare); priority_queue<Bt> que; int cnt=1; int cont=1; for(int i=1;i<=k;i++)//模拟 { que.push(b[i]); if(i==face[cnt].l && cnt<=m) { for(int j=1;j<=face[cnt].num && !que.empty();j++) { ans[cont++]=que.top().condition; que.pop(); } cnt++; } } while(!que.empty())//最后全部都进去 { ans[cont++]=que.top().condition; que.pop(); } for(int i=1;i<=q;i++) { int p; scanf("%d",&p); if(i!=q) printf("%s ",name[ans[p]]); else printf("%s\n",name[ans[p]]); } } return 0;}
0 0
- 模拟 优先队列(hdu 5437)
- HDU 5437--优先队列模拟
- HDU-5437-模拟-优先队列
- hdu 5437 优先队列 模拟
- HDU 5437 Alisha’s Party(优先队列+模拟)
- HDU 5437 Alisha’s Party (优先队列模拟)
- HDU 5437 Alisha’s Party(优先队列模拟)
- HDU 6136 模拟 + 优先队列
- HDU 6136 优先队列 模拟
- hdu 6136 模拟+优先队列
- hdu 6168 模拟+优先队列
- hdu 5040 Instrusive(bfs+优先队列)(模拟)
- hdu 5437 (优先队列)
- hdu 5437优先队列
- Hdu 1434 幸福列车【优先队列模拟】
- hdu Problem-1896(优先队列+模拟)
- HDU 6180 Schedule【优先队列+模拟】
- hdu 2364 Escape【模拟优先队列】【bfs】
- 搭建Java开发环境
- android缓存系列:动手封装DiskLruCache
- SnackBar(支持上下显示,兼容低版本)
- Android Rxjava之just方法的使用
- 多线程中的基本概念
- 模拟 优先队列(hdu 5437)
- 146. LRU Cache[hard]
- 普通素数筛法
- 3.3 垃圾收集算法
- codeforces 682D(DP)
- Phpstorm配置git版本控制器
- Java后台学习之---cookie和session学习
- linux定时任务crontab自动备份mysql数据库(ssh/php)
- Struts2.0学习---第一个程序