题目链接:http://poj.org/problem?id=2823
Sliding Window
Time Limit: 12000MS
Memory Limit: 65536K
Total Submissions: 38315
Accepted: 11350
Case Time Limit: 5000MS...
Wow! Such Sequence!Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2067Accepted Submission(s): 61...
分类:
其他好文 时间:
2014-07-31 12:38:26
阅读次数:
310
题目链接题意 : 一个有n段长的金属棍,开始都涂上铜,分段涂成别的,金的值是3,银的值是2,铜的值是1,然后问你最后这n段总共的值是多少。思路 : 线段树的区间更新。可以理解为线段树成段更新的模板题。 1 //HDU 1698 2 #include 3 #include 4 #include ...
分类:
其他好文 时间:
2014-07-31 12:37:26
阅读次数:
264
第一题线段树,纪念一下 1 #include 2 #include 3 using namespace std; 4 int tree[800005]; 5 void build(int l,int r,int root){ 6 if(l==r){ 7 scanf("%...
分类:
其他好文 时间:
2014-07-31 12:23:06
阅读次数:
208
核心知识点:(i)如何构造一颗线段树:void build(int rt,int L,int R){ if(L==R) scanf("%d",&Max[rt]); else { int M=(L+R)/2; build(rt*2,L,M); build...
分类:
其他好文 时间:
2014-07-31 12:09:06
阅读次数:
308
http://poj.org/problem?id=2828
学到的思维:
1、变化的或者后来的优先影响前面的,那么从最后一个往前看,最后一个就成了 确定的, 并且后来的也可以确定----如果从前往后,所有的随时都不是确定的
2、线段树叶子节点直接维护区间(线段)信息,非叶子节点v维护的是以v为树根的整个子树的信息,那么假设父节点rt信息为[l,r]那么左子树维护[l,mid],右子树维护[...
分类:
其他好文 时间:
2014-07-31 09:53:06
阅读次数:
181
假如F[1] = a, F[2] = B, F[n] = F[n - 1] + F[n - 2]。写成矩阵表示形式可以很快发现F[n] = f[n - 1] * b + f[n - 2] * a。 f[n] 是斐波那契数列也就是我们如果知道一段区间的前两个数增加了多少,可以很快计算出这段区间的第k个...
分类:
其他好文 时间:
2014-07-31 09:47:46
阅读次数:
286
题目链接:http://poj.org/problem?id=3264题目大意:在给定一堆牛的数量以及其高度的时候,每次给定一段区间,求这个区间内最高的牛和最矮的牛的高度之差为多少。这道题目用线段树能快速的求解,因为此处不涉及更新,所以无需写update函数不同于之前只定义一个tree数组,这回我们...
分类:
其他好文 时间:
2014-07-31 09:47:16
阅读次数:
210
点更新用法很巧妙的一道题。倒序很容易的找到该人的位置,而update操作中需要不断的变化下标才能合理的插入。看了别人写的代码,学习了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const ...
分类:
其他好文 时间:
2014-07-31 09:43:46
阅读次数:
182
题意:一个初始为0的数组,支持三种操作:1、向第k个数添加d,(|d| 2 #include 3 #include 4 using namespace std; 5 #define maxn 100005 6 #define lson l, m, rt= x - fib[a-1]) re...
分类:
其他好文 时间:
2014-07-31 02:52:55
阅读次数:
254