ACM: 敌兵布阵 解题报告 -线段树】的更多相关文章

敌兵布阵 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Lily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易.她把她的花依次排成一行,每盆花都有一个美观值.如果Lily把某盆花照料的好的话,这盆花的美观值就会上升,如果照料的不好的话,这盆花的美观值就会下降.有时,Lily想知道某段连续的花的美观值之和是多少,但是,Lily的算术不是很好,你能快…
敌兵布阵 HDU 1166 线段树 题意 这个题是用中文来描写的,很简单,没什么弯. 解题思路 这个题肯定就是用线段树来做了,不过当时想了一下可不可用差分来做,因为不熟练就还是用了线段树来做,几乎就是模板题了. 代码实现 #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<iostream> # define ls (rt<<…
生活艰辛,且行且珍惜. 先水一篇博客再去补题,要不然又忘记写博客了. 计划系统的刷一遍线段树专题,自己给自己找虐(自作孽不可活),从基础的到后面的,所有的都挂了题,刷题不,大兄弟? 线段树可真有意思,先写5道题的题解. 数据结构,好好刷专题,真的要好好刷专题,因为害怕队友嫌我太菜不要我了(好想哭啊) 少瓜皮,正经一点,队友就不嫌弃我了... 正题: 刷线段树主要参考模板是这两篇博客再加自己的习惯: 传送门:1.完全版线段树2.线段树详解 HDU1166.敌兵布阵 基础的单点增减.区间求和操作,直…
I Hate It Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. Input 本题目包含多组测试,请处理到文件结束. 在每个测…
C - Minimum Inversion Number Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i < j and ai > aj.…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 线段树中对某一点的值进行改变: #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define N 50010 #define Lson r<<1 #define Rson r<<1|1…
E - Just a Hook Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive m…
线段树板子题练手用 #include<cstdio> using namespace std; ; int a[maxn],n; struct Node{ int l,r; long long sum,lazy; void update(long long val){ sum+=1ll*(r-l+)*val; lazy+=val; } }tree[maxn*]; void push_up(int x){ tree[x].sum=tree[x<<].sum+tree[x<<…
题意: N个工兵营地,第i个营地有ai个人. 三种操作: 1.第i个营地增加x个人. 2.第i个营地减少x个人. 3.查询第i个到第j个营地的总人数. 思路: 线段树or树状数组 代码:(树状数组) int n; int a[50005]; int C[50005]; void init(){ rep(i,1,n){ C[i]=0; for(int j=i-lowbit(i)+1;j<=i;j++){ C[i]+=a[j]; } } } void add(int x,int y){ for(in…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目意思:给出 N 个数你,通过对某些数进行更改(或者 + 或者 -),当输入的是 Query 的时候,需要计算出 某个区间的和. 树状数组第一题,算是模板吧 ^_^ 这个人写得比较容易理解:http://blog.csdn.net/shahdza/article/details/6314818 权威版:http://community.topcoder.com/tc?module=Stati…