Long long ago there is a strong tribe living on the earth. They always have wars and eonquer others. One day, there is another tribe become their target. The strong tribe has decide to terminate them!!! There are villages in the other tribe. Each village contains a troop with attack power EAttacki, and defense power EDefensei. Our tribe has troops to attack the enemy. Each troop also has the attack power Attacki, and defense power Defensei. We can use at most one troop to attack one enemy village and a troop can only be used to attack only one enemy village. Even if a troop survives an attack, it can’t be used again in another attack.

  The battle between 2 troops are really simple. The troops use their attack power to attack against the other troop simultaneously. If a troop’s defense power is less than or equal to the other troop’s attack power, it will be destroyed. It’s possible that both troops survive or destroy.

The main target of our tribe is to destroy all the enemy troops. Also, our tribe would like to have most number of troops survive in this war.

Input

  The first line of the input gives the number of test cases, Ttest cases follow. Each test case start with 2 numbers and m, the number of our troops and the number of enemy villages. lines follow, each with Attackand Defensei, the attack power and defense power of our troops. The next lines describe the enemy troops. Each line consist of EAttackand EDefensei, the attack power and defense power of enemy troops

Output

  For each test ease, output one line containing ‘Case #xy’, where is the test case number (starting from 1) and is the max number of survive troops of our tribe. If it‘s impossible to destroy all enemy troops, output ‘-1’ instead.

Limits:

1≤ ≤100,

1≤ n,m ≤105,

1≤ Attacki,Defensei,EAttacki,EDefense≤109,

Sample Input

2

3 2

5 7

7 3

1 2

4 4

2 2

2  1

3  4

1 10

5 6

Sample Output

Case #1: 3

Case #2: -1

很久以前,地球上有一个强大的部落生活着。他们总是有战争和其他人。有一天,有另一个部落成为他们的目标。强大的部落决定终止他们!另一个部落有m个村庄。每个村庄都有一支攻击力量EAttacki和防御力量EDefensei的部队。我们的部落有n个部队来攻击敌人。每个部队还拥有攻击力Attacki和防御力Defensei。我们最多可以使用一个部队攻击一个敌方村庄,部队只能用来攻击一个敌方村庄。即使一个部队在袭击中幸存,它也不能在另一次袭击中再次使用。

两支部队之间的战斗非常简单。部队利用其攻击力同时攻击对方。如果一个部队的防御力小于或等于另一部队的攻击力,它将被破坏。两个部队都有可能生存或摧毁。

我们部落的主要目标是摧毁所有的敌军。此外,我们的部落希望在这场战争中有大量的部队生存下来。

这题和我的上一篇随笔差不多,一样的原理,stl在ACM里面作用非常大啊

注意multiset的运用

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<set>
#include<cctype>
using namespace std;
struct node {
int x,y;
} a[],b[];
int cmp1(node a,node b) {
return a.x>b.x;
}
int cmp2(node a,node b) {
return a.y>b.y;
} int main() {
int n,t,cas=,m;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&m);
multiset<int>ms;
multiset<int>::iterator it;
for (int i= ; i<n ; i++)
scanf("%d%d",&a[i].x,&a[i].y);
for (int i= ; i<m ; i++)
scanf("%d%d",&b[i].x,&b[i].y);
sort(a,a+n,cmp1);
sort(b,b+m,cmp2);
int ans=,flag=;
for (int i= ,j=; i<m ; i++ ) {
while(j<n && a[j].x>=b[i].y ) {
ms.insert(a[j++].y);
}
if (ms.empty()) {
flag=;
break;
}
it=ms.upper_bound(b[i].x);
if (it==ms.end()) it=ms.begin();
if (*it<=b[i].x) ans++;
ms.erase(it);
}
printf("Case #%d: %d\n",cas++,flag?(n-ans):-);
}
return ;
}

Defeat the Enemy UVALive - 7146的更多相关文章

  1. I - Defeat the Enemy UVALive - 7146 二分 + 贪心

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  2. UVALive 7146 Defeat The Enemy

    Defeat The Enemy Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Long long ...

  3. UVA LIVE 7146 Defeat the Enemy

    这个题跟codeforces 556 D Case of Fugitive思路一样 关于codeforces 556 D Case of Fugitive的做法的链接http://blog.csdn. ...

  4. UVa 7146 Defeat the Enemy(贪心)

    题目链接: 传送门 Defeat the Enemy Time Limit: 3000MS     Memory Limit: 32768 KB Description Long long ago t ...

  5. UVALive 7146 Defeat the Enemy(贪心+STL)(2014 Asia Shanghai Regional Contest)

    Long long ago there is a strong tribe living on the earth. They always have wars and eonquer others. ...

  6. UVALive 7146

    Long long ago there is a strong tribe living on the earth. They always have wars and eonquer others. ...

  7. UVALive 7146 (贪心+少许数据结构基础)2014acm/icpc区域赛上海站

    这是2014年上海区域赛的一道水题.请原谅我现在才发出来,因为我是在太懒了.当然,主要原因是我刚刚做出来. 其实去年我就已经看到这道题了,因为我参加的就是那一场.但是当时我们爆零,伤心的我就再也没有看 ...

  8. [uva_la7146 Defeat the Enemy(2014 shanghai onsite)]贪心

    题意:我方n个军队和敌方m个军队进行一对一的对战,每个军队都有一个攻击力和防御力,只要攻击力不小于对方就可以将对方摧毁.问在能完全摧毁敌方的基础上最多能有多少军队不被摧毁. 思路:按防御力从大到小考虑 ...

  9. 25 Killer Actions to Boost Your Self-Confidence

    25 Killer Actions to Boost Your Self-Confidence Once we believe in ourselves, we can risk curiosity, ...

随机推荐

  1. 小甲鱼OD学习第1讲

    这一讲我们的目标是修改Hello.exe对话框的标题和内容,如图所示 把程序放进OD,按F8一步步运行,直到程序弹出对话框为止,然后在弹出对话框位置处下断点 按Ctrl+F2重新载入程序,然后按F9直 ...

  2. qt窗口的切换

    思想:在一个窗口类中声明另一继承与Qdialog的类的变量 还有在另一类中parentwidget()函数获取父类窗口,然后将其隐藏.. 窗口1: mywin1.h #ifndef MYWIN1_H ...

  3. WPF DataTriger 用法示例代码

    用法1: <DataGridTemplateColumn Header="{lex:LocText ExamineRoom}"> <DataGridTemplat ...

  4. LINUX服务器下用root登录ftp

    因为安全方面的原因,root用户是默认不能登录ftp服务的. 如果一定要用root登录,则: 1.删除或注释/etc/vsftpd.ftpusers中的root 2.删除或注释/etc/vsftpd. ...

  5. python学习:设计一个算法将缺失的数字找出来。

    算法题   已知整型数值 a[99], 包含的所有99个元素都是从1-100中随机取值,并且这99个数两两互不相等,也就是说从1到100这100个数字有99个在数值内,有一个缺失.请设计一个算法将缺失 ...

  6. Python面向对象篇(3)-封装、多态、反射及描述符

    1. 多态 多态,最浅显的意识就是同一事物具有多种形态,这很好理解,动物是一个大类,猫类属于动物类,狗类属于动物类,人也是属于动物类,那能理解成,猫.狗.人是一样的吗?当然不是,还有,水,分为液体.固 ...

  7. keras初涉笔记【一】

    安装keras依赖的库 sudo pip install numpy sudo pip install scipy sudo pip installl pyyaml sudo pipi install ...

  8. 老男孩Python全栈开发(92天全)视频教程 自学笔记19

    day19 课程内容: 第19天的课程就是复习一些正则表达式,以及说一下计算器的思路,我就把我做的计算器代码当这一天的内容吧. 计算器作业:不eval函数,计算能计算:'1-2*((60-30-8*( ...

  9. HDU1560 DNA sequence IDA* + 强力剪枝 [kuangbin带你飞]专题二

    题意:给定一些DNA序列,求一个最短序列能够包含所有序列. 思路:记录第i个序列已经被匹配的长度p[i],以及第i序列的原始长度len[i].则有两个剪枝: 剪枝1:直接取最长待匹配长度.1900ms ...

  10. Python使用Mysql官方驱动(取出dict类型的数据)

    简介 虽然Python有很多连接mysql的库,比如mysqldb, pymysql~这些都很方便,现在就教大家使用mysql的官方库来操作mysql. 安装 windows: 下载链接 选择自己的w ...