题目链接: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
题目大意:
在一个序列上每次修改一个值,然后求出它的最大的子序列和。
思路分析:
首先我们不考虑不成环的问题。那就是直接求每个区间的最大值就好了。
但是此处成环,那么看一下下面样例。
5
1 -2 -3 4 5
那么你会发现 max = sum - min
也就是和减去最小区间和也可以得到。
所以我们最后要得到的就是两个东西。注意题目中说的不能全部取得。所以还要判断...
分类:
其他好文 时间:
2014-07-28 16:24:13
阅读次数:
244
HDU 4883 TIANKENG’s restaurant
题目链接
题意:给定一些时间作为区间,和一个人数,问要安排多少人去看管(一个人只能看管一个人)
思路:普通的区间选点问题,一个区间拆成一个进入点一个出去点,然后排序循环求答案即可
代码:
#include
#include
#include
using namespace std;
const in...
分类:
其他好文 时间:
2014-07-27 23:39:29
阅读次数:
353
这个系列总共有7道题,目前只做了3道,gss2比较难,gss4是暴力修改,树状数组维护,还没写,gss6和gss7还不在能力范围内。SPOJ_1043GSS1题意:给定长度不超过5万的序列,M次查询(貌似没给大小?。。),查询所给区间内的最大子段和。做法:线段树。维护区间和sum,区间可以得到的最大...
分类:
其他好文 时间:
2014-07-27 23:19:59
阅读次数:
456
2014年暑期实习老师要求的是人力资源管理系统,组队后组长分配给的任务是报表管理。 我做的报表管理,主要的功能是用户输入查询的时间区间和查询部门,然后将数据据库返回的数据显示在浏览器上。用户可以选择是否生成excel表格(表格是保存在固定的电脑地址下《D:》) 首先列一下系统要求:截图...
分类:
其他好文 时间:
2014-07-26 13:56:25
阅读次数:
208
题解 每一次我都对上一次的答案区间进行更新。其实更准确的说实际上是在检查是否需要放大区间。特别判断不在这个区间的x(相当于上文中的M(n, k)中的k)的情况,并且正确的赋值就行,也就是low = 0, high = n。其余的就判断与当前的区间的边界的距离,一个取小值,一个取大值。
当然不能忘记处理奇偶性。奇偶性和异或运算很类似,所以我是用异或搞的。
最后因为是一个公差为2的序列,但是我们只记录了区间和奇偶性。所以应当根据奇偶性去判断答案。
总体的时间复杂度就是O(N){计算区间} - O(N){计算答案...
分类:
其他好文 时间:
2014-07-23 13:32:26
阅读次数:
259
题解:首先,单点修改求区间和可以用树状数组实现,因为开平方很耗时间,所以在这个方面可以优化,我们知道,开平方开几次之后数字就会等于1 ,所以,用数组记录下一个应该开的数,每次直接跳到下一个不是1的数字进行开平方,至于这个数组,可以用并查集维护。#include #include #include u...
分类:
其他好文 时间:
2014-07-21 09:10:28
阅读次数:
224
题意:给出一列数(n个),m次查询区间[l,r]的最大连续区间[x,y](l
思路:动态查询区间最大连续区间;
如果是求最大连续区间和:
用线段树维护最大连续和sum_sub、最大前缀和sum_prefix、最大后缀和sum_suffix。
root.sum_sub = max{l.sum_sub, r.sum_sub, (l.sum_suffix + r.sum_prefix)...
分类:
其他好文 时间:
2014-07-16 11:42:15
阅读次数:
222
题目来源:Light OJ 1411 Rip Van Winkle`s Code
题意:3中操作 1种查询 求区间和 其中每次可以把一段区间从左到右加上1,2,3,。。。或者从右到左加上。。。3,2,1 或者把某个区间的数都置为v
思路:我是加了6个域
add是这段区间每个数都要加上add add是这么来的 对与123456。。。这个等差数列 可能要分为2个区间 那么我就分成123和12...