HDU 4970
http://acm.hdu.edu.cn/showproblem.php?pid=4970
比赛的时候线段树水过的,比赛后线段树一直T,看了下正解真的是智商压制
题意:走直线,长度1-N,还有一些人,起点任意,每个人有血量,m个塔,每个塔有攻击范围和伤害,在一个点只会受到塔一次攻击,走到N存活,问存活个数
用一个数组ak记录塔的起点和终点情况,每个塔攻击起点加塔的伤害值,终点+1减伤害值
再用一个新数组sum,从前到后扫一遍可以知道每个点出发时的伤害(sum[i]=sum[i-1]+ak[i]),再从后往前扫一遍可以知道每个点到N的伤害(sum[i]+=sum[i+1])
这样得到的sum[i]就表示从i-N会损失的血量
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std ; typedef __int64 ll ; ll ak[],sum[] ; int main()
{
int n ;
while(~scanf("%d",&n),n)
{
int m,k ;
scanf("%d",&m) ;
memset(ak,,sizeof(ak)) ;
memset(sum,,sizeof(sum)) ;
while(m--)
{
int L,R,D ;
scanf("%d%d%d",&L,&R,&D) ;
ak[L]+=(ll)D ;
ak[R+]-=(ll)D ;
}
for(int i= ;i<=n ;i++)
{
sum[i]=sum[i-]+ak[i] ;
}
for(int i=n- ;i> ;i--)
{
sum[i]+=sum[i+] ;
}
scanf("%d",&k) ;
int ans= ;
while(k--)
{
int x ;
ll h ;
scanf("%I64d%d",&h,&x) ;
if(sum[x]<h)ans++ ;
}
printf("%d\n",ans) ;
}
return ;
}
HDU 4970的更多相关文章
- HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)
题目地址:HDU 4970 先进行预处理.在每一个炮塔的火力范围边界标记一个点. 然后对每一个点的伤害值扫一遍就能算出来. 然后在算出每一个点到终点的总伤害值,并保存下来,也是扫一遍就可以. 最后在询 ...
- hdu 4970 Killing Monsters(数学题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4970 Problem Description Kingdom Rush is a popular TD ...
- hdu 4970 trick
http://acm.hdu.edu.cn/showproblem.php?pid=4970 有n个格子在一条线标号1-n上,可以给范围在l到r内的格子架上攻击力为d的攻击塔,有m个怪物,每个怪物有个 ...
- hdu 4970 Killing Monsters(数组的巧妙运用) 2014多校训练第9场
pid=4970">Killing Monsters ...
- hdu 4970 Killing Monsters (思维 暴力)
题目链接 题意: 有n座塔,每座塔的攻击范围为[l,r],攻击力为d,有k个怪兽从这些塔前面经过,第i只怪兽初始的生命力为hp,出现的位置为x,终点为第n个格子.问最后有多少只怪兽还活着. 分析: 这 ...
- HDU 4970 Killing Monsters
开始以为是线段树,算了一下复杂度也觉得能过...但是这题貌似卡了线段树... 具体做法: 对每一个塔,记录attack[l]+=d,attack[r+1]-=d;这样对于每个block,受到的伤害就是 ...
- HDU 4970 Killing Monsters(树状数组)
Killing Monsters Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- hdu 4970 树状数组 “改段求段”
题意:塔防.给1--n,给出m个塔,每个塔有攻击力,给出k个怪兽的位子和血量,问有几只可以到达n点. 今天刚刚复习了树状数组,就碰到这个题,区间更新.区间求和类型.第三类树状数组可以斩. 注意一下大数 ...
- hdu 4960 Another OCD Patient (最短路 解法
http://acm.hdu.edu.cn/showproblem.php?pid=4960 2014 Multi-University Training Contest 9 Another OCD ...
随机推荐
- 一个对iBatis的总结写的不错(转载)
转载自:http://blog.csdn.net/panxueji/article/details/9852795 一. ibatis介绍 ibatis始于2002年,2010年更名为mybatis, ...
- python 集合元素添加
#A new empty set color_set = set() color_set.add("Red") print(color_set) #Add multiple ite ...
- Python day7_set集合的常用方法以及常用格式化的总结
1.集合的定义:集合是无序的,没有重合元素的集合 集合外使用{}符号,各元素用,连接 2.集合的常用方法 1.add增加元素 2.clear清除元素 3.copy浅拷贝 4.difference差集( ...
- MongoDB(课时16 分页显示)
3.4.2.11 数据分页显示 在MongoDB里面的数据分页显示也是符合于大数据要求的操作函数: skip(n):表示跨过多少数据行 limit(n):取出的数据行的个数限制 范例:分页显示(比如显 ...
- jq expando && $.data()
1.使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能 jQuery提供了自己的数据缓存方案,使用jQuery数据缓存方案,我们需要掌握$.da ...
- idea运行main方法报错,提示Shorten command line for xxx
在Intell IDEA运行main函数的时候遇到了如下错误: Error running' xxxxxx': Command line is too long. Shorten command li ...
- Java 常用对象-StringBuffer类
2017-11-02 20:57:02 StringBuffer:线程安全的可变字符序列.一个类似于 String 的字符串缓冲区,但不能修改.虽然在任意时间点上它都包含某种特定的字符序列,但通过某些 ...
- xhr文件类型说明
2017-08-08 18:31:08 xhr : XML HTTP Request,是一种在后台与服务器进行交互的数据.这意味着可以在不加载整个网页的情况下,对网页中的部分内容进行更新. 这是Aja ...
- Oracle数据库system用户忘记了密码怎么办
1.在运行里面输入cmd调出dos窗口,然后在dos窗口中输入sqlplus /nolog 如:D:\oracle\ora92\bin>sqlplus /nolog 2.输入连接命令 如:SQL ...
- 关于c#除法运算的问题
https://blog.csdn.net/yxt1522916229/article/details/51107569/ 下面的示例可以验证一下问题: 例如: int m = 2; ...