D - Yet Another Monster Killing Problem
题目连接:
https://codeforces.com/contest/1257/problem/D
题目大意:
n个怪兽,m个英雄,每个怪兽有一定的能力值,每个英雄有一定的能力值和一定的耐力值。耐力值得含义是每天可以击杀怪兽的最多数目。当英雄的能力值大于怪兽的能力值时,英雄可以击杀怪兽,然后问击杀
所有的怪兽所需要的最短时间,如果不能击杀所有怪兽,输出-1;
思路:主要是一个对一个mx数组的理解mx[i]的含义是在耐力值为i的情况下,英雄的最大能力。
#include<bits/stdc++.h>
using namespace std;
const int N=2E5+;
int arr[N];
int mx[N];
int p[N],abi[N];
void solve(){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++) mx[i]=;
for(int i=;i<=n;i++) scanf("%d",&arr[i]);
int m;
scanf("%d",&m);
for(int i=;i<=m;i++){
scanf("%d%d",&abi[i],&p[i]);
mx[p[i]]=max(mx[p[i]],abi[i]);
}
//一天可以击杀i个的英雄一定可以击杀i-1个。
//即mx[i]指的是耐力值大于等于i的英雄的最大能力。
for(int i=n-;i>=;i--) mx[i]=max(mx[i],mx[i+]);
int day=,j=;
bool flag=false;
for(int i=;i<=n;){
day++;
flag=false ;
int maxn=;
int tmp=i;
//一天可以击杀的最大数量,找到这几个怪兽的最大能力,然后在mx数组中查找击杀x个怪兽英雄的最大能力。
while(){
maxn=max(arr[i],maxn);
if(maxn>mx[i-tmp+]) break;
i++;
flag=true;
}
if(!flag) break;
}
if(!flag) day=-;
printf("%d\n",day);
return ;
} int main(){
cin.tie();
int t;
scanf("%d",&t);
while(t--) solve();
return ;
}
D - Yet Another Monster Killing Problem的更多相关文章
- Educational Codeforces Round 76 (Rated for Div. 2) D. Yet Another Monster Killing Problem 贪心
		
D. Yet Another Monster Killing Problem You play a computer game. In this game, you lead a party of
 - Educational Codeforces Round 76 (Rated for Div. 2)    D. Yet Another Monster Killing Problem
		
You play a computer game. In this game, you lead a party of mm heroes, and you have to clear a dunge ...
 - 【CF1257D】Yet Another Monster Killing Problem【贪心】
		
题意:给定一些怪物,每天可以选一个勇士进去打怪,每个勇士每天只能打不超过si个怪物,每个勇士只能打能力值≤pi的怪物,问最少多少天打完所有怪物 题解:贪心,每天尽可能多的去打怪,那么存一个对于长度为i ...
 - Educational Codeforces Round 76 (Rated for Div. 2)
		
传送门 A. Two Rival Students 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/13 22:37:26 */ #incl ...
 - CF Educational Round 78 (Div2)题解报告A~E
		
CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students 依题意模拟即可 #include<bits/stdc++.h> us ...
 - HDU 6326.Problem H. Monster Hunter-贪心(优先队列)+流水线排序+路径压缩、节点合并(并查集) (2018 Multi-University Training Contest 3 1008)
		
6326.Problem H. Monster Hunter 题意就是打怪兽,给定一棵 n 个点的树,除 1 外每个点有一只怪兽,打败它需要先消耗 ai点 HP,再恢复 bi点 HP.求从 1 号点出 ...
 - HDU 6326 Problem H Monster Hunter
		
\(\mathtt{Problem H}\) \(\mathtt{Monster}\) \(\mathtt{Hunter}\) \(\mathcal{Description}\) 题目 给定一棵 \( ...
 - hdu4970 Killing Monsters (差分数列)
		
2014多校9 1011 http://acm.hdu.edu.cn/showproblem.php?pid=4970 Killing Monsters Time Limit: 2000/1000 M ...
 - 周赛-Killing Monsters                                                       分类:            比赛             2015-08-02 09:45    3人阅读    评论(0)    收藏
		
Killing Monsters Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
 
随机推荐
- 灵感来袭,基于Redis的分布式延迟队列
			
延迟队列 延迟队列,也就是一定时间之后将消息体放入队列,然后消费者才能正常消费.比如1分钟之后发送短信,发送邮件,检测数据状态等. Redisson Delayed Queue 如果你项目中使用了re ...
 - 我们是怎么实现Grpc CodeFirst
			
前言: Grpc默认是ProtoFirst的,即先写 proto文件,再生成代码,需要人工维护proto,生成的代码也不友好,所以出现了Grpc CodeFirst,下面来说说我们是怎么实现Grpc ...
 - excel导出功能
			
/* * 导出 add by faby on 20180918 */ public void export(){ HttpServletResponse response=ServletAct ...
 - mysql打开general log的办法
			
mysql打开general log的办法 mysql打开general log之后,所有的查询语句都可以在general log 文件中以可读的方式得到,但是这样general log文件会非常 ...
 - 使用Keras构建深度图像搜索引擎
			
动机 想象一下,如果有数十万到数百万张图像的数据集,却没有描述每张图像内容的元数据.我们如何建立一个系统,能够找到这些图像的子集来更好地回答用户的搜索查询? 我们基本上需要的是一个搜索引擎,它能够根据 ...
 - 多伦多大学&NVIDIA最新成果:图像标注速度提升10倍!
			
图像标注速度提升10倍! 这是多伦多大学与英伟达联合公布的一项最新研究:Curve-GCN的应用结果. Curve-GCN是一种高效交互式图像标注方法,其性能优于Polygon-RNN++.在自动模式 ...
 - Arcgis连接SQL Server提示试图使用不支持的旧版SQL Server客户端通信软件进行连接
			
一般提示这种错误的是arcgis服务区和SQL server服务器不在同一台电脑上,但在同一个局域网. 遇到这种问题是arcgis 服务器客户端连接SQL server数据库有问题,要么是客户端没有安 ...
 - Unable to locate JAR/zip in file system as specified by the driver definitio
			
把之前的驱动包删掉,然后把你的驱动包导入就行了 现在OK键就算正常了
 - 【WPF学习】第六十四章 构建基本的用户控件
			
创建一个简单用户控件是开始自定义控件的好方法.本章主要介绍创建一个基本的颜色拾取器.接下来分析如何将这个控件分解成功能更强大的基于模板的控件. 创建基本的颜色拾取器很容易.然而,创建自定义颜色拾取器仍 ...
 - Ubuntu命令方式安装中文语言包
			
Ubuntu命令方式安装中文语言包 安装之前执行 $LANG 查看语言环境 中文语言包: language-pack-zh-hans 简体中文 language-pack-zh-hans-base l ...