hdu 5596 GTW likes gt
2015-12-15 11:19
309 查看
题意:
问题描述
输入描述
输出描述
输入样例
输出样例
Hint
/*一秒内可以发功多次- -
思路:
先想法得出最终的数列,然后倒着遍历,记录走过的两个组的最大值,如果比当前大,则可以消灭当前值,即总数会
减1.
Orz:
主要是一直没什么思路,没有考虑到倒着来搞,感觉遇到几次了QAQ。
问题描述
从前,有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存活的个数。
输入样例
1 4 3 0 3 1 2 0 3 1 1 1 3 4
输出样例
3
Hint
第11秒后 能力值为4\ 2\ 3\ 14 2 3 1 第22秒后 能力值为4\ 2\ 3\ 14 2 3 1 第33秒后 能力值为5\ 3\ 4\ 15 3 4 1,第22只GT被第33只GT消灭掉了 第44秒后 能力值为6\ 4\ 5\ 26 4 5 2 c_ici并不是有序的
/*一秒内可以发功多次- -
思路:
先想法得出最终的数列,然后倒着遍历,记录走过的两个组的最大值,如果比当前大,则可以消灭当前值,即总数会
减1.
Orz:
主要是一直没什么思路,没有考虑到倒着来搞,感觉遇到几次了QAQ。
#include <iostream> #include <cstring> #include <cstdio> using namespace std; typedef long long ll; const int INF = 10000; const int maxn = 1000010; int t[maxn],a[maxn],c[maxn]; int main() { int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); int max0,max1; memset(c,0,sizeof(c)); for(int i = 1; i <= n; i++) { scanf("%d%d",&t[i],&a[i]); } for(int i = 1;i <= m;i++) { int t; scanf("%d",&t); c[t]++; } int sum = 0; for(int i = 1;i <= n;i++) { a[i] += (m-sum); sum += c[i]; } max0 = max1 = 0; //if(ADD ){max0--;max1--;} // int sum = c ; int sub = 0; for(int i = n;i >= 1;i--) { if(t[i] == 0) { if(max1 > a[i]) sub++; // a[i] -= sum; max0 = max(max0,a[i]); } if(t[i] == 1) { if(max0 > a[i]) sub++; max1 = max(max1,a[i]); } } printf("%d\n",n-sub); } return 0; }
相关文章推荐
- hdu 5596 GTW likes gt
- html5桌面通知
- Json Serialize 忽略特定属性
- [How to] UILocalNotification 的使用
- 在北京创业三个月的惨痛经历
- Centos Linux中VMware虚拟机为磁盘空间的扩容
- python 错误提示
- Kinect for Windows SDK开发入门(十):手势识别 上:基本概念
- ubuntu系统安装360 wifi2(兼容小米wifi和百度wifi http://blog.sina.com.cn/s/blog_6ad624380102v7k0.html
- HTTP 1.1与HTTP 1.0的比较
- 从 UIWebView 到 WKWebView
- ionic 发布 android apk
- Chrome 中的 JavaScript 断点设置和调试技巧
- Socket通信总结(附C++实现)
- 【转】Pro Android学习笔记(十二):了解Intent(下)
- angularjs中ng-route和ui-router简单用法的代码比较
- GetFiles GetDirectories 获取文件名,目录名排序
- http协议及web服务原理
- Installshie安装
- RHadoop培训 之 Linux基础课