hdu 4970小想法题

不要局限于线段树    超时的活,  还以为是自己写矬了       仔细想想    题目只是要你求出i到n的攻击和 就行了   没有别的    O(n)时间复杂度

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
__int64 add[100010],del[100010];
__int64 sum[100010],s,mark[100010];
int main()
{

    int n,m,i,j,k;
    while(~scanf("%d",&n),n)
    {
        scanf("%d",&m);
        memset(add,0,sizeof(add));
        memset(del,0,sizeof(del));
        memset(sum,0,sizeof(sum));
        for(i=1;i<=m;i++)
        {
            int a,b,c;
            scanf("%d%d%d",&a,&b,&c);
            add[b]+=c;
            add[a-1]-=c;
        }
        s=0;
        for(i=n;i>=1;i--)
        {
            s+=add[i];
            sum[i]=sum[i+1]+s;
        }
        scanf("%d",&k);
        __int64 hp;
        int point,cont=0;
        for(i=1;i<=k;i++)
        {
            scanf("%I64d%d",&hp,&point);
            if(sum[point]<hp) cont++;
        }
        printf("%d\n",cont);
    }
    return 0;
}
时间: 2024-12-18 09:24:25

hdu 4970小想法题的相关文章

hdu 1789 小想法题

思路: 因为每天只能做一种作业  对每个作业都是均等的(不看分数)  有点贪心思想(尽量先写分数大的作业   且尽量在快到截止日期时写 )   理解这点就差不多了 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; struct node { int deal; int gard; }num[1100]; int cm

hdu 5063 小想法

题意给出最多不超过50次询问   顾对每次询问倒着去找起始位置 中间标记平方了多少次    然后用找到的数去平方就行 #include<stdio.h> #include<string.h> #include<iostream> using namespace std; int main() { int T,n,m,i,j; int num[100010],power; char str[5]; __int64 a; scanf("%d",&

HDU 2410 Barbara Bennett&#39;s Wild Numbers (想法题)

题目链接:HDU 2410 Barbara Bennett's Wild Numbers 题意:给出两串数w,s(长度相同),第一串中有"?",问"?"取的值使w对应的数大于s对应的数 的最大方案数. 思路:W,S一一对应比较: 遇到第一个'?'之前比较情况 1.w[i]<s[i] 方案数0种:break: 2.w[i]>s[i] break.之后有n个''?' 方案数就有10的n次方种. 3.w[i]=s[i] 继续比较,重复1.2两个条件. 遇到'?

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

HDU 2410 Barbara Bennett&amp;#39;s Wild Numbers (想法题)

题目链接:HDU 2410 Barbara Bennett's Wild Numbers 题意:给出两串数w,s(长度同样),第一串中有"?",问"?"取的值使w相应的数大于s相应的数 的最慷慨案数. 思路:W,S一一相应比較: 遇到第一个'?'之前比較情况 1.w[i]<s[i] 方案数0种:break: 2.w[i]>s[i] break. 之后有n个''?' 方案数就有10的n次方种. 3.w[i]=s[i] 继续比較.反复1.2两个条件. 遇到'

HDU - 5806 NanoApe Loves Sequence Ⅱ 想法题

http://acm.hdu.edu.cn/showproblem.php?pid=5806 题意:给你一个n元素序列,求第k大的数大于等于m的子序列的个数. 题解:题目要求很奇怪,很多头绪但写不出,选择跳过的题,简称想法题. 首先考虑区间的更新方法:区间左端l不动,右端r滑动, 滑到有k个数>=m时,此区间符合条件,并且发现右端点再往右滑到底,此条件一直符合(因为若加入的数小于"第K大的数",则毫无影响.若不然,加入该数会产生一个新的第k大数,保证>="第K大

HDU 4972 Bisharp and Charizard 想法题

Bisharp and Charizard Time Limit: 1 Sec  Memory Limit: 256 MB Description Dragon is watching NBA. He loves James and Miami Heat. Here's an introduction of basketball game:http://en.wikipedia.org/wiki/Basketball. However the game in Dragon's version i

2014多校训练九(HDU 4960 HDU 4961 HDU 4965 HDU 4968 HDU 4969 HDU 4970)

HDU 4960 Another OCD Patient 题意:给你一串数字  相邻x个数字合并成一个数字(相加)有一定代价  问  最少花费多少使得串变成回文串 思路: 读完题感觉像dp  数据范围也像  就开始想怎么表示状态  最简单的应该想到dp[i][j]表示i到j区间变成回文串的最小花费  状态想好了想做法  考虑将串分成AAAABBBBBBBCCC三段  即所有A合成一个数字  C也是  而且A和C相等  那么B串就变成了子问题  但是A和C是不是都要枚举呢?  这个串所有元素都是正