博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-5596 GTW likes gt(模拟+优先队列)
阅读量:4327 次
发布时间:2019-06-06

本文共 1724 字,大约阅读时间需要 5 分钟。

题目链接:

 Time Limit: 2000/1000 MS (Java/Others)
 Memory Limit: 131072/131072 K (Java/Others)
问题描述
从前,有nn只萌萌的GT,他们分成了两组在一起玩游戏。他们会排列成一排,第ii只GT会随机得到一个能力值b_ibi。在第ii秒的时候,第ii只GT可以消灭掉所有排在他前面的和他不是同一组的且能力值小于他的GT。 为了使游戏更加有趣,GT的首领GTW会发功mm次,第ii次发功的时间为c_ici,则在第c_ici秒结束后,b_1,b_2,...,b_{c_i}b1,b2,...,bci都会增加1。 现在,GTW想知道在第nn秒之后,会有几只GT存活下来。
输入描述
 
第一行只有一个整数T(T\leq 5)T(T≤5),表示测试数据组数。 第二行有两个整数n,mn,m。表示GT的个数和GTW发功的次数。(1\leq n \leq 50000,1\leq m\leq 500001≤n≤50000,1≤m≤50000) 第三到n+2n+2行,每行有两个整数a_i,b_iai,bi,表示第ii只GT在哪个组和他的能力值 (0\leq a[i]\leq 1,1\leq b[i]\leq 10^6)(0≤a[i]≤1,1≤b[i]≤106) 第n+3n+3行到第n+m+2n+m+2行,每行有一个整数c_ici,表示GTW第ii次发功的时间。1\leq c[i]\leq n1≤c[i]≤n
输出描述
 
总共TT行,第ii行表示第ii组数据中,GT存活的个数。
输入样例
14 30 31 20 31 1134
输出样例
3 题意: 不说了; 思路: 这是一个模拟题;可以用队列的出队模拟被消灭,开两个队列表示不同的组别,然而一般的队列的复杂度跟数组的没区别,所以得用优先队列来降低复杂度; 那么问题的难点就变成了怎么定义优先级了; 我们从第一个gt一直到第n个gt,依次入队,在入队的同时要保证不同组别即另一个队列里的比他小的都出队; 所以我们要按能力的值大小定义优先级,但是能力的大小在变化,这可难办了; 我们发现,在i秒发功,那么从1到n都将加1,我们可以把b[i]-前i秒的发功次数定义成优先级就可以在判断是否出队的时候队列里的排列是单调的了; 具体的看代码解释; AC代码:
/*    5596    234MS    2764K    1585 B    G++    LittlePointer*/#include 
using namespace std;const int N=5e4+5;typedef long long ll;const ll mod=1e9+7;int t,n,m,x,flag[N],dp[N];struct node{ friend bool operator<(node x,node y) { return x.fnum>y.fnum; } int ki,num,pos,fnum;};node po[N];priority_queue
qu1,qu2;int main(){ scanf("%d",&t); while(t--) { while(!qu1.empty())qu1.pop(); while(!qu2.empty())qu2.pop(); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d%d",&po[i].ki,&po[i].num); po[i].pos=i; } memset(flag,0,sizeof(flag)); for(int i=0;i

 

 

转载于:https://www.cnblogs.com/zhangchengc919/p/5410036.html

你可能感兴趣的文章
机器学习基石笔记2——在何时可以使用机器学习(2)
查看>>
POJ 3740 Easy Finding (DLX模板)
查看>>
MySQL 处理重复数据
查看>>
关于typedef的用法总结(转)
查看>>
【strtok()】——分割字符串
查看>>
Linux下安装rabbitmq
查看>>
曹德旺
查看>>
【转】判断点在多边形内(matlab)
查看>>
java基础之集合:List Set Map的概述以及使用场景
查看>>
Python 线程 进程 协程
查看>>
iOS语言中的KVO机制
查看>>
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
查看>>
响应式web设计之CSS3 Media Queries
查看>>
实验三
查看>>
机器码和字节码
查看>>
环形菜单的实现
查看>>
【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】...
查看>>
34 帧动画
查看>>
二次剩余及欧拉准则
查看>>
Centos 7 Mysql 最大连接数超了问题解决
查看>>