hdu5437 优先队列 长春网赛
2015-09-16 10:28
357 查看
优先队列做,然后遍历人数。
#include <queue> #include <stdio.h> #include <string.h> #define maxn 150010 using namespace std; struct node { int id; int val; friend bool operator < (node a ,node b){ if(a.val==b.val) return a.id > b.id; return a.val < b.val; } }a[maxn]; priority_queue<node>q; int n,x[maxn],ans[maxn]; char name[maxn][210]; int main() { int i,j,t,m,p; scanf("%d", &t); while(t--) { scanf("%d %d %d", &n, &m, &p); memset(x,0,sizeof(x)); for(i=1; i<=n; i++) { scanf("%s %d", name[i], &a[i].val); a[i].id=i; ans[i]=0; } for(i=0; i<m; i++) { int fx,fy; scanf("%d %d", &fx, &fy); x[fx]=fy; } int cou=1; for(i=1;i<=n;i++) { q.push(a[i]); for(j=0;j<x[i]&&!q.empty();j++) { node tt=q.top(); q.pop(); ans[cou++]=tt.id; } } while(!q.empty()) { node tt=q.top(); q.pop(); ans[cou++]=tt.id; } int flag=0; while(p--) { int fp; scanf("%d",&fp); if(!flag) printf("%s",name[ans[fp]]); else printf(" %s",name[ans[fp]]); flag=1; } printf("\n"); } }
相关文章推荐
- SQLSERVER 索引
- sqlserver中文件和文件组的概念
- [Usaco2007 Open]City Horizon 城市地平线
- linux内核参数注释与优化
- 基本正则表达式
- Linux常用命令备忘录
- springmvc4.2.1+mybatis3.3.0+maven3.3+mysql读写分离
- Android 多媒体应用:开启摄像头、查看相册中的照片
- sql server 修改表的默认值, 需要先删除约束条件
- 应用闭包点击节流 防止用户频繁点击
- awk,sed文本处理案例
- Servlet技术基础
- 前端注意事项总结
- CSS hack
- HDU 1754
- OS之设备管理
- 随机分数生成即csv文件
- Linux用户、用户组、文件权限设置
- Java泛型类定义,与泛型方法的定义使用
- 2.4