线段树结点上保存一个一般的sum值,再同时保存一个fbsum,表示这个结点表示的一段数字若为斐波那契数时的和
当进行3操作时,只用将sum = fbsum即可
其他操作照常进行,只是单点更新的时候也要先向下更新
#include
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-07-30 17:33:24
阅读次数:
153
很典型的线段树,注意就是一个数字如果变成了斐波那契数字之后如果在change的话,它是不会反生改变的,因为最近的斐波那契数字就是它本身了啊。
用一个flag表示这一段上的数字是否change过,如果flag == 1已经change过,就不会在向下更新。否则的话就进行更新,最后会到达一个节点,更新这个节点。这里用暴力更新就行,找到最近的斐波那契数字。
Add就是一个点更新,sum求和就是一个区...
分类:
其他好文 时间:
2014-07-30 10:07:43
阅读次数:
438
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
题目链接: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 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
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1568数学....囧...害我低沉了好几天提不起劲做题。用到了斐波那契数列的通项公式。先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c); 假设给出...
分类:
其他好文 时间:
2014-07-29 11:06:06
阅读次数:
187
解:这道题很有意思,结论是斐波那契数也可以用对数时间复杂度获得。 通过Tpq(Tpq)=TPQ建立方程,解得: P=pp+qq Q=qq+2pq 程序如下: (define?(fib?n)
??(define?(even??n)
????(=?(remainder?n?2...
分类:
其他好文 时间:
2014-07-26 17:26:42
阅读次数:
713
dp果然不是好学的。。。
第n个,即2*n时,可由第n-1个的竖直排列再加一个,和第n-2个中横着排两个
所以f(n) = 1×f(n-1) + 1×f(n-2);
骨牌铺方格
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s...
分类:
其他好文 时间:
2014-07-26 15:13:40
阅读次数:
213
1 /** 2 * 题目:创建一个方法,接受一个整数参数,并显示从第一个元素开始总共由该参数指定的个体数所构成的所有斐波那契数字。 3 * 例如:运行Fibonacci5,得到,1,1,2,3,5. 4 * @author Administrator 5 * 6 */ 7 public ...
分类:
编程语言 时间:
2014-07-25 02:41:24
阅读次数:
245