hud5437-Alisha’s Party-优先队列
来源:互联网 发布:足彩n串1算法 编辑:程序博客网 时间:2024/06/07 09:54
就是裸的优先队列 (因为数据太小 了)
题意就是 一堆朋友拜访主人公 各自带了礼物
给你m次开门的机会,开门时 如果朋友没全部到齐,按以下规则
在第m次开门的时候 让礼物价值最大的前p个人进来,
全部人到齐后。让全部人进来,
求进门的人的顺序
对客人维护一个优先队列就可以了,对m,p 让前m个人进优先队列取前p个人就行了,因为数据小 暴力取就ok;
trick是 m次操作是不按顺序的,我们得排个序
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>using namespace std; #define inf 0x7fffffff struct node{char name[205];int val;int num;bool operator<( const node& b) const { if (val!=b.val) return val<b.val; else return num>b.num; }};node tm[150005]; priority_queue <node> qq; node ans[150005];struct comes{ int l,r;};comes come[150005];int cmp(comes a,comes b){ return a.l<b.l; }int main(){ int t; scanf("%d",&t); int i; while(t--) { while(!qq.empty()) qq.pop(); int ok=0; int k,m,q; scanf("%d%d%d",&k,&m,&q); for (i=1;i<=k;i++) { scanf("%s %d",tm[i].name,&tm[i].val); tm[i].num=i; } int tt,pp,j; int last=1; for (i=1;i<=m;i++) { scanf("%d%d",&tt,&pp); come[i].l=tt; come[i].r=pp; } sort(come+1,come+1+m,cmp); for (i=1;i<=m;i++) { tt=come[i].l; pp=come[i].r; for (j=last;j<=tt;j++) { qq.push(tm[j]); } last=tt+1; for (j=1;j<=pp;j++) { if (qq.empty()) { break; } node tmp=qq.top(); qq.pop(); ans[++ok]=tmp; } } for (j=last;j<=k;j++) { qq.push(tm[j]); } for (j=ok+1;j<=k;j++) { if (qq.empty()) break; node tmp=qq.top(); qq.pop(); ans[j]=tmp; } int ttt; int line=0; for (i=1;i<=q;i++) { scanf("%d",&ttt); if (!line) printf("%s",ans[ttt].name); else printf(" %s",ans[ttt].name); line=1; } printf("\n"); } return 0;}
0 0
- hud5437-Alisha’s Party-优先队列
- HDU 5437 Alisha’s Party 优先队列
- hdu 5437 Alisha’s Party 优先队列
- hdu 5437Alisha’s Party(优先队列)
- hdu 5437 Alisha’s Party (优先队列)
- hdu5437 Alisha’s Party 优先队列
- [hdu5437] Alisha’s Party(优先队列)
- hdu 5437 Alisha’s Party 优先队列
- HDU 5437 Alisha’s Party 优先队列
- hdu 5437 Alisha’s Party(优先队列)
- HDU5437 Alisha’s Party 优先队列
- hdu5437 Alisha’s Party(优先队列、模拟)
- hdu 5437 Alisha’s Party(优先队列)
- hdu 5437Alisha’s Party(优先队列)
- 15年长春网赛Alisha’s Party +优先队列
- hdoj 5437 Alisha’s Party 【优先队列 模拟】
- HDU 5437 Alisha’s Party(优先队列+模拟)
- Alisha’s Party 5437 (字符串+优先队列)好题
- Android应用建项目第一步
- JAVA中int、String的类型转换
- 【持续更新】纪念一下 我们 那些狂妄的青春
- 说明此动作能充分运动到下半身有效锻炼臀部及腹
- C#经典之Application.DoEvents()的使用
- hud5437-Alisha’s Party-优先队列
- linux-odbc
- 今天是快乐的程序员节
- MVC Kendo总结之-----> ComboBox
- libcurl的使用--如何复用连接
- android学习笔记7 - 连接服务器操作和数据处理(get+service)
- 10大Go语言开源项目推荐
- 尺寸单位
- 【OSX】clover 安装到硬盘efi分区