hdu 4970 树状数组 “改段求段”
题意:塔防。给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 树状数组 “改段求段”相关推荐
- CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)
CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段) 树状数组仅仅能实现线段树区间改动和区间查询的功能,能够取代不须要lazy tag的线段树.且 ...
- POJ3468--A Simple Problem with Integers--线段树/树状数组 改段求段
题目描述 You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type ...
- hdu 1394(树状数组求逆序数)
解题思路:这道题是求循环数组中逆序数最小值,求逆序数这里肯定是用树状数组.只是这里有一点点变化,由于题目中n位数是0-n-1的一个排列,所以num[i]可表示为比num[i]小的数的个数.把第一位的数 ...
- HDU 4358 树状数组+思路
http://acm.hdu.edu.cn/showproblem.php?pid=4358 如图所示,当k==3时,如果我们扫描到红线所在的位置. 则符合条件的区间就是从红线到两条紫线所包含的区间( ...
- HDU 6681 树状数组 欧拉公式
给一个长方形的?, 切k刀, 每一刀是顶点互不重合且在蛋糕内, 平行坐标轴的射线, 问把?切成了几块. 欧拉公式: V−E+F=2V-E+F=2V−E+F=2 即点数−边数+面数=2点数-边数+面数= ...
- hdu 4991(树状数组优化dp)
Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 4417(树状数组+离线算法)
解题思路:这道题要求某区间内比h小的个数,其实这里可以类似于树状数组求逆序数那样.关键是如何转换成树状数组的模型,这才是本题的难点. 我们首先分析,如果知道h在该区间的哪个位置,那么剩下的就很好做了. ...
- Weak Pair HDU - 5877 树状数组+离散化+DFS遍历
题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair (1)u是v的祖先节点 (2)a[u]*a[v]<= k N<=1 ...
- hdu 1166 树状数组解
树状数组解决 (关于树状数组参考大佬的博客https://www.cnblogs.com/hsd-/p/6139376.html) 然后就很好理解这题了,代码附上 /*hdu 1166 单点修改, ...
最新文章
- 要获得“机器学习或数据科学”的工作,到底选哪种编程语言更好?
- 为什么说在KMP算法中文本串中的每个字符都是需要进行比较操作的?
- Android PDU
- python数据库操作pymysql
- css-transform-案例-翻转牌效果
- php 中 stream_select 中的小窟窿.
- 声明式事务java_Spring声明式事务管理源码解读之事务开始
- 影响大数据和分析的5大趋势
- 新手如何快速学习单片机
- multisim红绿灯元器件在哪里_实验一:Multisim交通灯仿真.ppt
- iOS及Mac开源项目和学习资料【超级全面】
- 树莓派/Ubuntu联网以及查看本机的IP
- 自锁时间电路plc_自锁与互锁电路的plc梯形图程序【图】
- adobe dreamweaver cs6 css,Adobe Dreamweaver CS6
- 在嵌入式开发中如何提高自己的代码水平
- 分别画出程序的软件流程图、NS图、PAD图; 程序
- Python简单浪漫表白代码鲜花
- 云脉H5高效纠错系统
- 实际案例说明计算机网络安全,计算机网络安全案例教程
- 【pytorch】tnn
热门文章
- winform 的exe为什么移动之后不能使用_C++MyDock配置要求、所需运行库、常见问题 初次使用必看...
- 计算机网络透明网桥的算法,网基课程设计曼切斯特编码模拟透明网桥自习域转发帧算法模拟IP分片模拟.doc...
- c语言编译程序的软件下载,c语言编译器(wintc)
- 支付宝mysql集群_支付宝支撑2135亿成交额的数据库架构原理
- import pandas as pd什么意思_【医学名词】多发性骨髓瘤MR、SD、PD分别是什么意思?...
- 苹果CMS V10 播放记录_苹果cms采集后无法播放怎么解决?
- 内存模型 linux,内存模型 - STM32F4 编程手册学习_Linux编程_Linux公社-Linux系统门户网站...
- java 得到bean的属性_获取javaBean所有属性及类型.doc
- 单片机交通灯的电路图以及代码_单片机晶振“问答篇”(下),17大单片机晶振问题全解答...
- python决策树画图_利用python用iris做一个决策树的可视化更好的理解机器学习!...