题意:给你一个序列,其中有三种操作1)位置为K 的数+ D2)求 l-r 区间和3)把 l-r 区间里面的所有数都变为理它最近的斐波纳契数解题思路:这个题的区间更新其实可以在单点更新的时候就得出,为节点维护两个 和,一个是 斐波纳契和 一个是正常和 ,再看这个区间有没有被3覆盖,特判一下就行了。解题...
分类:
其他好文 时间:
2014-07-30 00:46:52
阅读次数:
308
http://acm.hdu.edu.cn/showproblem.php?pid=4893题意:10万的区间,初始都为0,10万次操作,三种操作为单点修改,区间将每个数改成最近的斐波那契数,以及区间求和。分析:用一个flag记录该段是否被改成斐波那契数,同时多维护一个sum1表示如果该段改成斐波那...
分类:
其他好文 时间:
2014-07-30 00:23:12
阅读次数:
276
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4893
题意:给你一个长度n的数列,初始都为0,有三种操作,第一种给第k个位置的数加d,第二种是查询区间 [l , r] 的总和,第三种是使区间 [l , r] 的值改为离它最近的那个斐波那契数的值。
我刚开始用sum数组存储节点的值,第三种操作是个区间更新,但是区间更新的值不一样,我就想当然的...
分类:
其他好文 时间:
2014-07-29 22:06:02
阅读次数:
358
题目链接:http://poj.org/problem?id=2777
题目意思:就是问你在询问的区间里有几种不同的颜色
思路:这题和一般的区间修改差不多,但是唯一不同的就是我们要怎么计算有种颜色,所以这时候我们就需要把延时标记赋予不同的意义,当某段区间有多种颜色时就赋值为-1,当为一种颜色时就把它赋值为这个颜色的号数。这儿我们要怎么统计询问区间不同的颜色数叻,为了不重复计算同一种颜色,那么我...
分类:
其他好文 时间:
2014-07-29 22:05:22
阅读次数:
418
题目链接:hdu 4983 Wow! Such Sequence!
题目大意:就是三种操作
1 k d, 修改k的为值增加d
2 l r, 查询l到r的区间和
3 l r, 间l到r区间上的所以数变成最近的斐波那契数,相等的话取向下取。
解题思路:线段树,对于每个节点新增一个bool表示该节点以下的位置是否都是斐波那契数。
#include
#include
#includ...
分类:
其他好文 时间:
2014-07-29 22:03:32
阅读次数:
327
HDU 4893 Wow! Such Sequence!
题目链接
题意:给定一个序列,3种操作,单点添加值,查询区间和,把区间和变成最接近的婓波那契数
思路:线段树,就是第三个操作麻烦,就在结点添加一个值,标记它区间是不是都是婓波那契数了,然后修改区间的时候,如果区间是了就不用修改,如果不是就继续往后一层推即可
代码:
#include
#include
#in...
分类:
其他好文 时间:
2014-07-29 22:02:22
阅读次数:
407
求区间内最大数和最小数的差,用两棵线段树,一个维护区间最大值,一个维护区间最小值。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define QUADMEM...
分类:
其他好文 时间:
2014-07-29 22:00:02
阅读次数:
259
题目链接:http://poj.org/problem?id=3368
题目大意:给你一段不下降的序列,求给定区间里出现次数最多的那个数字的次数。
思路:首先看到这题时,第一感觉线段树,但是仔细一看问题来啦,用线段数我怎么才能计算出某段区间里出现的那个数,因为出现最多的那个数可能不是在他它的左儿子上也不是在它的右儿子上,可能在当他们合并成一个区间时就出现啦,但是这儿我们需要注意...
分类:
其他好文 时间:
2014-07-29 21:59:32
阅读次数:
334
N个数为非递减顺序,给定范围l,r,求[l,r]区间内数字出现频率最高的次数。
可以用线段树来做。先说查询,我们设节点P对应的区间为[a, b],左孩子节点为p1,右孩子节点为p2,那么 P也许不等于 max(p1 , p2),原因是如果p1中频率较低的某个数与p2中出现频率较低的某个数是同一个数,并且两者出现次数加起来大于max(p1, p2),但是,题目说N个数为非递减顺序排...
分类:
其他好文 时间:
2014-07-29 21:57:22
阅读次数:
327
HDU 4891 The Great Pan
签到题 他怎么说你就怎么做就好了 注意做乘法时候会爆int
HDU 4893 Wow! Such Sequence!
题意:
n个数一开始都是0 你有三种操作 1操作在k位置加d 2操作输出[l,r]区间的和 3操作把[l,r]内的所有数变成离它最近最小的斐波那契数
思路:
操作1、2就是线段树基本 那么3怎么搞? 为了不超时显然要延迟更新 那么如果更新到[l,r]区间我们如何更改值呢
其实问题可以被巧妙的存储数据解决
我们记val为点上的值 ...
分类:
其他好文 时间:
2014-07-29 21:51:52
阅读次数:
477