题意:塔防。给1--n,给出m个塔,每个塔有攻击力,给出k个怪兽的位子和血量,问有几只可以到达n点。

今天刚刚复习了树状数组,就碰到这个题,区间更新、区间求和类型。第三类树状数组可以斩。

注意一下大数即可。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
__int64 tree1[100010],tree2[100010];
int n,m;
void add_b(int x,int c)
{while(x>0){tree1[x]+=c;x-=(x&(-x));}
}
__int64 sum_b(int x)
{// if(x==0)return 0;__int64 res=0;while(x<=n){res+=tree1[x];x+=(x&(-x));}return res;
}
void add_c(int x,int c)
{if(x<1)return ;int tx=x;while(x<=n){tree2[x]+=c*tx;x+=(x&(-x));}
}
__int64 sum_c(int x)
{__int64 res=0;while(x>0){res+=tree2[x];x-=(x&(-x));}return res;
}
__int64 inline sum(int x)
{if(x>=1)return  sum_b(x)*x+sum_c(x-1);elsereturn  0;
}
int main()
{while(~scanf("%d",&n)&&n){scanf("%d",&m);memset(tree1,0,sizeof(tree1));memset(tree2,0,sizeof(tree2));int l,r,c;for(int i=0;i<m;i++){scanf("%d%d%d",&l,&r,&c);add_b(r,c);add_b(l-1,-c);add_c(r,c); add_c(l-1,-c);}int k;scanf("%d",&k);int counted=0;__int64 xi,hi;for(int i=1;i<=k;i++){scanf("%I64d%I64d",&hi,&xi);if(hi>sum(n)-sum(xi-1)){counted++;}}printf("%d\n",counted);}return 0;
}

转载于:https://www.cnblogs.com/yezekun/p/3925688.html

hdu 4970 树状数组 “改段求段”相关推荐

  1. CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)

    CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段) 树状数组仅仅能实现线段树区间改动和区间查询的功能,能够取代不须要lazy tag的线段树.且 ...

  2. POJ3468--A Simple Problem with Integers--线段树/树状数组 改段求段

    题目描述 You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type ...

  3. hdu 1394(树状数组求逆序数)

    解题思路:这道题是求循环数组中逆序数最小值,求逆序数这里肯定是用树状数组.只是这里有一点点变化,由于题目中n位数是0-n-1的一个排列,所以num[i]可表示为比num[i]小的数的个数.把第一位的数 ...

  4. HDU 4358 树状数组+思路

    http://acm.hdu.edu.cn/showproblem.php?pid=4358 如图所示,当k==3时,如果我们扫描到红线所在的位置. 则符合条件的区间就是从红线到两条紫线所包含的区间( ...

  5. HDU 6681 树状数组 欧拉公式

    给一个长方形的?, 切k刀, 每一刀是顶点互不重合且在蛋糕内, 平行坐标轴的射线, 问把?切成了几块. 欧拉公式: V−E+F=2V-E+F=2V−E+F=2 即点数−边数+面数=2点数-边数+面数= ...

  6. hdu 4991(树状数组优化dp)

    Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  7. hdu 4417(树状数组+离线算法)

    解题思路:这道题要求某区间内比h小的个数,其实这里可以类似于树状数组求逆序数那样.关键是如何转换成树状数组的模型,这才是本题的难点. 我们首先分析,如果知道h在该区间的哪个位置,那么剩下的就很好做了. ...

  8. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历

    题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair (1)u是v的祖先节点 (2)a[u]*a[v]<= k N<=1 ...

  9. hdu 1166 树状数组解

    树状数组解决   (关于树状数组参考大佬的博客https://www.cnblogs.com/hsd-/p/6139376.html) 然后就很好理解这题了,代码附上 /*hdu 1166 单点修改, ...

最新文章

  1. 要获得“机器学习或数据科学”的工作,到底选哪种编程语言更好?
  2. 为什么说在KMP算法中文本串中的每个字符都是需要进行比较操作的?
  3. Android PDU
  4. python数据库操作pymysql
  5. css-transform-案例-翻转牌效果
  6. php 中 stream_select 中的小窟窿.
  7. 声明式事务java_Spring声明式事务管理源码解读之事务开始
  8. 影响大数据和分析的5大趋势
  9. 新手如何快速学习单片机
  10. multisim红绿灯元器件在哪里_实验一:Multisim交通灯仿真.ppt
  11. iOS及Mac开源项目和学习资料【超级全面】
  12. 树莓派/Ubuntu联网以及查看本机的IP
  13. 自锁时间电路plc_自锁与互锁电路的plc梯形图程序【图】
  14. adobe dreamweaver cs6 css,Adobe Dreamweaver CS6
  15. 在嵌入式开发中如何提高自己的代码水平
  16. 分别画出程序的软件流程图、NS图、PAD图; 程序
  17. Python简单浪漫表白代码鲜花
  18. 云脉H5高效纠错系统
  19. 实际案例说明计算机网络安全,计算机网络安全案例教程
  20. 【pytorch】tnn

热门文章

  1. winform 的exe为什么移动之后不能使用_C++MyDock配置要求、所需运行库、常见问题 初次使用必看...
  2. 计算机网络透明网桥的算法,网基课程设计曼切斯特编码模拟透明网桥自习域转发帧算法模拟IP分片模拟.doc...
  3. c语言编译程序的软件下载,c语言编译器(wintc)
  4. 支付宝mysql集群_支付宝支撑2135亿成交额的数据库架构原理
  5. import pandas as pd什么意思_【医学名词】多发性骨髓瘤MR、SD、PD分别是什么意思?...
  6. 苹果CMS V10 播放记录_苹果cms采集后无法播放怎么解决?
  7. 内存模型 linux,内存模型 - STM32F4 编程手册学习_Linux编程_Linux公社-Linux系统门户网站...
  8. java 得到bean的属性_获取javaBean所有属性及类型.doc
  9. 单片机交通灯的电路图以及代码_单片机晶振“问答篇”(下),17大单片机晶振问题全解答...
  10. python决策树画图_利用python用iris做一个决策树的可视化更好的理解机器学习!...