烂大街的IOI2014题解
IOI2014 Rail(单调栈)
IOI2014 Wall(区间修改线段树)
IOI2014 Game(构造)
IOI2014 Gondola(模拟+快速幂)
IOI2014 Friend(树形DP)
IOI2014 Holiday(函数式线段树+决策单调性分治)...
分类:
其他好文 时间:
2015-03-29 16:35:38
阅读次数:
452
这道题属于线段树的区间修改给出一个序列,对其进行Q次操作,"Cabc" means addingcto each ofAa,Aa+1, ... ,Ab. -10000 ≤c≤ 10000."Qab" means querying the sum ofAa,Aa+1, ... ,Ab.注意,这道题.....
分类:
其他好文 时间:
2015-03-20 01:13:14
阅读次数:
171
Description有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M接下来M行,每行形如1 a b c或2 a b cOutpu...
分类:
编程语言 时间:
2015-03-15 18:04:38
阅读次数:
178
线段树主要用于区间记录信息(如区间和、最大最小值等),首先是建树:这里以求和为例: 1 const int MAXM=50000; //定义 MAXM 为线段最大长度 2 3 int a[MAXM+5],segtree[(MAXM>1); // m 为中间点,左儿子结点...
分类:
其他好文 时间:
2015-03-13 22:05:18
阅读次数:
306
考虑树状数组区间修改(只对其子树的答案有影响)点查询,每个点记录的是它到根路径上的权值异或和。答案时query(L)^query(R)^a[lca]。这种方法在支持区间加法、减法的树上询问的时候可以避免树链剖分。可能爆栈,考虑手动开栈。(诶诶Tarjan预处理lca的时候怎么没手动开栈?不要在意^_...
分类:
编程语言 时间:
2015-03-09 22:26:08
阅读次数:
216
预处理出每个点到根节点的土路数,插到一个树状数组里,然后每次修改只会对子树中的节点造成影响,于是相当于区间修改、点查询了。#includeusing namespace std;#define N 250001int n,en,v[N<<1],next[N<<1],first[N],m;void A...
分类:
编程语言 时间:
2015-03-09 16:00:06
阅读次数:
133
裸题,树状数组区间修改+单点查询。当然要稍微讨论一下链的左右端点是否修改的情况咯。#include#include#includeusing namespace std;#define N 300001int en,v[Nsiz[son[U]]) son[U]=v[i]; ...
分类:
编程语言 时间:
2015-03-09 14:26:55
阅读次数:
142
DescriptionYou haveNintegers,A1,A2, ... ,AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each ...
分类:
编程语言 时间:
2015-03-07 15:32:20
阅读次数:
217
题目大意:给定n个操作,每个操作有四种形式,操作之后若R就变成R,现在给定q个输入,求他们的输出
n,q
将这q个数建立线段树,四个操作都可以在线段树上完成
但是溢出怎么办呢?
容易发现若x
因为四个操作都是线性的,溢出也不会反转两个数的大小关系
那么我们可以预先将q个数排序 那么溢出的数一定是连续的两段 区间修改就行了
至于怎么找两端溢出的区间…… 每个节点维护一个区间最大值和最小...
分类:
其他好文 时间:
2015-03-01 23:51:49
阅读次数:
451
题目链接:http://hihocoder.com/problemset/problem/1080对于这种不止一个懒标记的线段树,只要弄清楚各种操作和各种懒标记间的关系就OK了。我的代码: 1 #include 2 3 using namespace std; 4 5 #define...
分类:
其他好文 时间:
2015-02-22 16:54:03
阅读次数:
265