HDU 5437 Alisha’s Party (2015年长春赛区网络赛A题)
2015-09-14 17:19
387 查看
1.题目描述:点击打开链接
2.解题思路:本题是多关键字的排序题目,可以事先定义好优先级,然后利用一个优先队列来模拟“到来”和“进门”这2个过程,有2个地方需要小心:1.题目中输入的t,p需要事先排序;2.不要忘记处理最后一次开门时候的情况。
3.代码:
2.解题思路:本题是多关键字的排序题目,可以事先定义好优先级,然后利用一个优先队列来模拟“到来”和“进门”这2个过程,有2个地方需要小心:1.题目中输入的t,p需要事先排序;2.不要忘记处理最后一次开门时候的情况。
3.代码:
#include<iostream> #include<algorithm> #include<cassert> #include<string> #include<sstream> #include<set> #include<bitset> #include<vector> #include<stack> #include<map> #include<queue> #include<deque> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> #include<ctime> #include<cctype> #include<complex> #include<functional> #pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; #define me(s) memset(s,0,sizeof(s)) #define rep(i,n) for(int i=0;i<(n);i++) typedef long long ll; typedef unsigned int uint; typedef unsigned long long ull; typedef pair <int, int> P; const int N=150000+10; struct Node { char name[210]; int val; int rank; void read(int i) { rank=i; scanf("%s%d",name,&val); } bool operator<(const Node&rhs)const { if(val!=rhs.val)return val<rhs.val; return rank>rhs.rank; } }a ,b ; struct Open { int t,p; void read() { scanf("%d%d",&t,&p); } bool operator<(const Open&rhs)const { return t<rhs.t; } }r ; int query ; Node ans[105]; int n,m,q; void print() { for(int i=0;i<n;i++) printf("%s %d\n",b[i].name,b[i].val); } void solve() { int st=0,cnt=0; priority_queue<Node>pq; for(int i=0;i<m;i++) { int pos=r[i].t,num=r[i].p; for(int j=st;j<pos;j++)//“到达” pq.push(a[j]); while(num--) //“进门” { if(pq.empty())break; b[cnt++]=pq.top();pq.pop(); //b数组存放进门的顺序 } st=pos; } for(int j=st;j<n;j++)pq.push(a[j]); //处理最后一次开门 while(!pq.empty()) { b[cnt++]=pq.top();pq.pop(); } } int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&m,&q); for(int i=0;i<n;i++) a[i].read(i); int st=0; me(r); for(int i=0;i<m;i++) r[i].read(); sort(r,r+m); //事先要对t,p排序 for(int i=0;i<q;i++) scanf("%d",&query[i]); solve(); for(int i=0;i<q;i++) printf("%s%c",b[query[i]-1].name," \n"[i==q-1]); } }
相关文章推荐
- 关于项目在新导入时所有有httpservlet的地方均报错的解决办法
- IOS网络状态检查
- iOS网络编程(7) 第三方开源库----->AFNetworking
- HDU_3081_Marriage Match II(二分图完美匹配 / 网络流)
- 卷积神经网络
- HttpClient用post方式传JSON格式字符串参数
- Android 网络连接:HttpUtils 的GET、POST与注解
- 网络连接之-xUtils框架(第三方通信框架)介绍(一)
- IOS网络第五天 AFN-01发送get和post请求
- 关于HTTPS的七个误解
- 【网络】(九)close与shutdown
- win10无法连接网络怎么办?Win10提示无法连接此网络的原因与解决方案
- IOS网络第四天 -网络文件上传(0923略)
- IOS网络第三天 - 01-网络文件下载(0922略)
- 网络地址转换NAT
- 图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)
- android手势识别(转) http://www.eoeandroid.com/thread-229581-1-1.html (出处: eoe 移动开发者论坛)
- 启用selinux后,php访问网络异常
- IOS网络第二天 - 09-多值参数
- IOS网络第二天 - 07-发送JSON给服务器