标签:小想法
不要局限于线段树 超时的活, 还以为是自己写矬了 仔细想想 题目只是要你求出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; }
标签:小想法
原文地址:http://blog.csdn.net/zxf654073270/article/details/44925221