HDU4970 Killing Monsters dp

题意:给你n个操作,每一次对区间相加,询问区间和。

解题思路:这里没有动态更新, 所以我们用括号匹配那种方法就行 就是 a[l] + x  ,a[r+1] -x 这种做法。

解题代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 #include <math.h>
 5 #define MAX 100005
 6 #define LL long long
 7 LL a[100005];
 8 int main()
 9 {
10         int n;
11         while(scanf("%d",&n) != EOF,n)
12         {
13             memset(a,0,sizeof(a));
14             int tsum ;
15             scanf("%d",&tsum);
16             for(int i =1 ;i<=tsum ;i ++)
17             {
18                int ta,tb,tc;
19                scanf("%d %d %d",&ta,&tb,&tc);
20                a[ta] += tc;
21                a[tb+1] -= tc;
22             }
23             LL sum = 0 ;
24             LL ta = 0 ;
25             for(int i = 1;i <= n;i ++)
26             {
27                ta += a[i];
28                sum += ta;
29                a[i] = sum;
30                //printf("%I64d ",a[i]);
31             }
32             //printf("\n");
33             scanf("%d",&tsum);
34             int ans = 0 ;
35             for(int i = 1;i <= tsum ;i ++)
36             {
37                 LL ta,tb;
38                 scanf("%I64d %I64d",&ta,&tb);
39                 if(a[n] - a[tb-1] < ta)
40                 {
41                  ans ++ ;
42                 }
43             }
44             printf("%d\n",ans);
45
46         }
47     return 0 ;
48 }

HDU4970 Killing Monsters dp,布布扣,bubuko.com

时间: 2024-10-09 17:59:44

HDU4970 Killing Monsters dp的相关文章

hdu4970 Killing Monsters (差分数列)

2014多校9 1011 http://acm.hdu.edu.cn/showproblem.php?pid=4970 Killing Monsters Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 331    Accepted Submission(s): 198 Problem Description Kingdom Rush

【HDU4970】Killing Monsters

HDU - 4970 Killing Monsters 先输入一个n表示一共有n个格子,然后输入k表示有k个攻击塔,紧跟k行数据,每行三个数字l,r,d,表示该攻击塔可以在l到r范围内造成d的伤害,然后输入一个m后面跟m行,每行两个数字h,x分别表示该怪物的血量和位置,怪物们将从他的位置x走到n,问能活着走到的有几只怪物. dalao说这是一种懒操作 线性区间更新的懒操作 将l~r的区间每个都加d 我们只想知道每个点的具体值 所以就不用树状数组.线段树什么的 只用将它a[l]+d,a[r+1]-

HDU - 4970 Killing Monsters

Problem Description Kingdom Rush is a popular TD game, in which you should build some towers to protect your kingdom from monsters. And now another wave of monsters is coming and you need again to know whether you can get through it. The path of mons

hdu 4970 Killing Monsters(数学题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4970 Problem Description Kingdom Rush is a popular TD game, in which you should build some towers to protect your kingdom from monsters. And now another wave of monsters is coming and you need again to k

HDU 4970 Killing Monsters 【搜索】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4970 题目大意:给你一些防御塔的位置和其攻击力,以及一些怪物的血量和位置,问走到终点还有几个怪物活着. 题目思路:最开始看题目的时候就是区间更新的过程觉得会花很多时间,然后用的树状数组,后来发现用的一个机智方法可以过,简单了很多. 区间更新的主要时间是花在塔的伤害,(L,R)D伤害上面,我们用一个sttack数组记录伤害,在attack[L]+=D,在attack[R]-=D,然后从前往后扫一遍,可

【HDOJ 4970】 Killing Monsters

[HDOJ 4970] Killing Monsters 数据很大 立马想预处理 每只怪物会从点x出现移动到点n(终点) 问能剩几只怪物 预处理求出每个位置到终点所受伤害 出现一只怪物直接判断死活即可 代码如下: #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <algorithm> #include <queue>

HDOJ 4970 Killing Monsters

明明扫一遍的题目,比赛的时候居然用线段树...TLE 5发... Killing Monsters Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 225    Accepted Submission(s): 128 Problem Description Kingdom Rush is a popular TD game, in

hdu 4970 Killing Monsters(简单题) 2014多校训练第9场

Killing Monsters                                                                        Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Problem Description Kingdom Rush is a popular TD game, in which you should b

HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)

题目地址:HDU 4970 先进行预处理,在每个炮塔的火力范围边界标记一个点.然后对每个点的伤害值扫一遍就能算出来.然后在算出每个点到终点的总伤害值,并保存下来,也是扫一遍即可.最后在询问的时候直接判断即可,复杂度O(2*n). 代码如下: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define maxn 110000 #define LL __int6