首页 > 其他 > 详细

HDU4970 Killing Monsters dp

时间:2014-08-20 01:14:25      阅读:307      评论:0      收藏:0      [点我收藏+]

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

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

解题代码:

bubuko.com,布布扣
 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 }
View Code

 

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

HDU4970 Killing Monsters dp

原文:http://www.cnblogs.com/zyue/p/3923566.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!