区间更新+lazy
I 操作 l-r 区间+c
C操作 l-r区间的最大值,并把最大值删除
线段树再加个记录最大值的位置即可
#include "stdio.h"
#include "string.h"
int ans,mark;
struct node
{
int l,r,Max,mark,lazy;
}data[400010];
void ...
分类:
其他好文 时间:
2014-09-03 11:21:06
阅读次数:
221
看看type = 2的操作,对于区间[l,r]内的元素对x取模,由于取模肯定不能和取模,所以只能每个元素取模,看上去不是区间更新,但是仔细一看,若区间[l,r]内所有的元素都小于x,那么这一区间不需要管,所以还是存在区间整段操作,所以需要lazy,这里也算是一个剪枝了,剩下的就是type = 3的 单点更新,还有type = 1的区间求和,整体操作不难
int n,m;
ll nnum...
分类:
其他好文 时间:
2014-09-02 22:58:35
阅读次数:
423
int BSearch(){ int ln(1),rn(n+1); while(ln+1>1; if (Check(mid)) { ln=mid; //mid符合标准,区间变为[mid,rn) } else { rn=mid; /...
分类:
其他好文 时间:
2014-09-02 21:20:15
阅读次数:
212
题目链接:点击打开链接
题意:
rt。。
在询问时,两端向上爬时记录从深度浅的到深度深的方向上的 (也就是左最大连续子段和)
最后两个点在同一条重链上时合并。
合并时要注意有4种情况, 详见代码。
线段树部分和5相似。
#include
#include
#include
#include
using namespace std;
inline void rd(int &n)...
分类:
其他好文 时间:
2014-09-02 14:14:54
阅读次数:
235
最大子段和的各种形式
题解内附每道题的 题意 题目链接 思路
SPOJ 1043 GSS1
静态区间求个最大子段和,
题解
SPOJ 1577 GSS2
和1一样,区别是若区间内存在相同的元素,则该元素只计算一次。
离线一下然后使劲跑。。
题解
SPOJ 1716 GSS3
和1一样,就是要支持单点修改
题解
SPOJ 2713 GS...
分类:
其他好文 时间:
2014-09-02 14:12:45
阅读次数:
222
题意:给定一棵树,每个节点是一堆石子,给定两种操作:
1.改变x号节点的石子数量
2.用从x到y的路径上的所有堆石子玩一次Nim游戏,询问是否有必胜策略
Nim游戏有必胜策略的充要条件是所有堆的石子数异或起来不为零
这题首先一看就是树链剖分 然后题目很善良地告诉我们深搜会爆栈 于是我们可以选择广搜版的树链剖分
BFS序从左到右是深搜,从右到左是回溯,一遍BFS就够
单点修改区间查询还可...
分类:
其他好文 时间:
2014-09-02 10:34:04
阅读次数:
334
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2795
题意:有一块h*w 的广告版,有n块1*w[i]的广告,就着放广告尽量在顶上,尽量先放左边的原则,问在第几行能把广告放下,如果放不下,就打印-1;
思路:我们可以根据每一行建树,每一个子叶表示每一行的容量,而节点存放子节点的最大值,然后从最顶到底,快速查找能存放下广告的一行。
总之...
分类:
其他好文 时间:
2014-09-02 10:32:14
阅读次数:
217
题目:HDU4883TIANKENG’s restaurant
题目大意:一间餐厅,给你每组客人的人数和来的时间,离开的时间,问最少需要的椅子。
解题思路:这题本来想用区间覆盖做,可是后面发觉不太对。这题貌似暴力也是可以过的,因为时间才1440.其中的一种做法:把每个区间的开始和结束时间点都标记上是来人还是走人,对应的椅子数加上减去。然后在枚举一下时间,在这个过程中维护椅子的最...
分类:
其他好文 时间:
2014-09-02 10:31:44
阅读次数:
181
import java.util.ArrayList;import java.util.Iterator;/** * 桶排序:桶排序的思想是把区间[0,1)划分成n个相同大小的子区间,称为桶,然后将n个输入数分布到各个桶中去。 * 因为输入数均匀且独立分布在[0,1)上,所以,一般不会有很多数落在一...
分类:
编程语言 时间:
2014-09-02 10:26:14
阅读次数:
195
桶排序的基本思想假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶) 。然后基于某种映射函数 ,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) ,那么该关键字k就作为B[i]中的元素(每个桶B[i]都是一组大小为N/M的序列)。接着对每个桶B[i...
分类:
其他好文 时间:
2014-09-02 10:15:44
阅读次数:
237