GTW likes gt

题目连接:

http://acm.hdu.edu.cn/showproblem.php?pid=5596

Description

Long long ago, there were n adorkable GT. Divided into two groups, they were playing games together, forming a column. The i−th GT would randomly get a value of ability bi. At the i−th second, the i−th GT would annihilate GTs who are in front of him, whose group differs from his, and whose value of ability is less than his.

In order to make the game more interesting, GTW, the leader of those GTs, would emit energy for m times, of which the i−th time of emitting energy is ci. After the ci second, b1,b2,...,bci would all be added 1.

GTW wanted to know how many GTs would survive after the n−th second.

Input

The first line of the input file contains an integer T(≤5), which indicates the number of test cases.

For each test case, there are n+m+1 lines in the input file.

The first line of each test case contains 2 integers n and m, which indicate the number of GTs and the number of emitting energy, respectively.(1≤n,m≤50000)

In the following n lines, the i−th line contains two integers ai and bi, which indicate the group of the i−th GT and his value of ability, respectively. (0≤ai≤1,1≤bi≤106)

In the following m lines, the i−th line contains an integer ci, which indicates the time of emitting energy for i−th time.

Output

There should be exactly T lines in the output file.

The i−th line should contain exactly an integer, which indicates the number of GTs who survive.

Sample Input

1

4 3

0 3

1 2

0 3

1 1

1

3

4

Sample Output

3

Hint

题意

从前,有n只萌萌的GT,他们分成了两组在一起玩游戏。他们会排列成一排,第i只GT会随机得到一个能力值bi。

在第i秒的时候,第ii只GT可以消灭掉所有排在他前面的和他不是同一组的且能力值小于他的GT。

为了使游戏更加有趣,GT的首领GTW会发功m次,第ii次发功的时间为ci,则在第ci秒结束后,b1,b2,...,bci都会增加1。

现在,GTW想知道在第n秒之后,会有几只GT存活下来。

题解:

倒着做

首先我们倒着做.

倒着做就可以只由后面的最大值所影响了。

所以,记录分别1组此时的最大值和0组的此时最大值。

然后扫一遍就好了。

代码

#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std; #define maxn 1000005
struct node
{
int x,y;
}A[maxn];
int n,m;
int Time[maxn];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(Time,0,sizeof(Time));
memset(A,0,sizeof(A));
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d%d",&A[i].x,&A[i].y);
for(int i=1;i<=m;i++)
{
int x;scanf("%d",&x);
Time[x]++;
}
int Max[3];
Max[0]=Max[1]=0;
int ans=0;
int tot=0;
for(int i=n;i>=1;i--)
{
tot+=Time[i];
A[i].y+=tot;
if(Max[A[i].x^1]>A[i].y)
ans++;
Max[A[i].x]=max(A[i].y,Max[A[i].x]);
}
printf("%d\n",n-ans);
}
}

HDU 5596 GTW likes gt 倒推的更多相关文章

  1. HDU 5596 ——GTW likes gt——————【想法题】

    GTW likes gt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)To ...

  2. hdu 5596 GTW likes gt

    题目链接: hdu 5596 题意不难懂(虽然我还是看了好久)大概就是说 n 个人排成一列,分成两组, 第 i 秒时第 i 个人会消灭掉前面比他 b[i] 值低的且和他不同组的人,c[i] 表示第 c ...

  3. HDU 5597 GTW likes function 打表

    GTW likes function 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5596 Description Now you are give ...

  4. HDU 5597 GTW likes function 欧拉函数

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5597 题意: http://bestcoder.hdu.edu.cn/contests/contes ...

  5. Hdu 5595 GTW likes math

    题意: 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学<从自主招生到竞赛>.然而书里的题目太多了,GTW还有很多事情要忙(比如把妹),于是他把那些题目交给了你.每一道题 ...

  6. hdu 5595 GTW likes math(暴力枚举查询)

    思路:直接暴力枚举区间[l,r]的整数值,然后max和min就可以了. AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000 ...

  7. HDU 5596/BestCoder Round #66 (div.2) GTW likes math 签到

    GTW likes math  Memory Limit: 131072/131072 K (Java/Others) 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学<从自主 ...

  8. hdu-5596 GTW likes gt(模拟+优先队列)

    题目链接: GTW likes gt  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072/131072 K (Java/Othe ...

  9. TYVJ P1034 尼克的任务 Label:倒推dp

    背景 题库靠大家,人人都爱它. 描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成.尼克的一个工作 ...

随机推荐

  1. Android中垃圾回收日志信息

    原因 GC_CONCURRENTfreed 178K, 41% free 3673K/6151K, external 0K/0K, paused 2ms+2msGC_EXPLICITfreed 6K, ...

  2. Learning Vector

    题意: 给出n组x,y增量,从(0,0)开始以x,y坐标增加后等到的终点坐标,可以构成一个面积,再以这个终点为起点再增加,以此类推,使用增量顺序不同,得到的面积不,求用k组增量能得到的最大的面积. 分 ...

  3. windows下django1.7 +python3.4.2搭建记录2

    1.自定义页面写一个显示当前时间的页面views.py文件加一个使用模板的模块,整体内容为: #coding=utf-8 from django.shortcuts import render fro ...

  4. IOS播放音乐和音效

    1.播放音效 1.1 首先获取到音效文件路径 NSString *path = [[NSBundle mainBundle] pathForResource:soundFileName ofType: ...

  5. pick定理:面积=内部整数点数+边上整数点数/2-1

    //pick定理:面积=内部整数点数+边上整数点数/2-1 // POJ 2954 #include <iostream> #include <cstdio> #include ...

  6. 转 Flash与PS交互动画

    FLASH是可以点击体验的,不是图片哦. UI中国不能上传flash,但是站酷可以,UI中国的就下载载附件看看吧 本人学生党兼网页设计师菜鸟一名,因为无聊练习做了个FLASH的交互 所以很多学弟学妹们 ...

  7. 一行 Python 实现并行化 -- 日常多线程操作的新思路

    春节坐在回家的火车上百无聊赖,偶然看到 Parallelism in one line 这篇在 Hacker News 和 reddit 上都评论过百的文章,顺手译出,enjoy:-) http:// ...

  8. RHAS Linux下架构Lotus Domino详解(附视频)

    此处下载操作视频:RHAS Linux下架构Lotus Domino 6.5视频教程      在rhas下架构Lotus Domino 汉化 650) this.width=650;" o ...

  9. 使用android SpannableStringBuilder实现图文混排

    项目开发中需要实现这种效果 多余两行,两行最后是省略号,省略号后面是下拉更多 之前用过的是Html.fromHtml去处理图文混排的,仅仅是文字后图片或者文字颜色字体什么的, 但是这里需要在最后文字的 ...

  10. 第二百零八天 how can I 坚持

    今天徐斌生日,生日快乐.买了两个小蛋糕,哈哈 还买了两条熊猫鱼.不知道鱼会不会冻死啊,买了加热器又不想用,看他们造化吧. LOL不错的游戏的. 睡觉,好冷.