主席树(可持久化线段树
Hillan_
An OIer From ZJ
展开
-
主席树(可持久化线段树)学习笔记
首先离散化 然后当前版本的线段树可以有上个版本的线段树修改lgn个节点得到的 还满足区间减法 好神 #include #include #include #include #include using namespace std; setD; char c; bool flag; inline void read(int&a) {a=0,flag=false;do c=getchar原创 2015-12-20 09:45:10 · 996 阅读 · 0 评论 -
BZOJ3551: [ONTAK2010]Peaks加强版
用DFS序+主席树#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; char c; inline void read(int &a){a=0;do c=getchar();while(c<'0'||c>'9');while(c原创 2016-06-22 18:51:55 · 451 阅读 · 0 评论 -
BZOJ3207: 花神的嘲讽计划Ⅰ
居然一A了感动qwq 今天一个下午在捣鼓新到的MacBookPro 要好好努力辣~ 然后最后终于可以用了(撒花 一开始以为是子序列…#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; char c; inline void read(int &a) {原创 2016-04-11 20:41:38 · 364 阅读 · 0 评论 -
BZOJ3514: Codechef MARCH14 GERALD07加强版
主席树+LCT 每次加边的时候判断一下是否成环 如果没有就加进去否则弹出环内比序号最小边 然后统计答案#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<cmath> using namespace std;char c; inline void read(int &a) {原创 2016-02-28 11:36:20 · 580 阅读 · 0 评论 -
BZOJ4408: [Fjoi 2016]神秘数&&BZOJ4299: Codechef FRBSUM
讲道理这道题的做法还是很神de 对于当前区间扩展可达到[0,max]则一定可以扩展到[0,sum(i)(i<=max+1)] 然后就是用可持久化线段树跑暴力 初始max=0然后一直到不能扩展是max+1即为答案#include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> using namespace std;原创 2016-03-10 17:00:36 · 779 阅读 · 0 评论 -
BestCoder Round#77
今天开始将要转一下做题的OJ了。。 虽然感觉放着权限号在那里不好。。。。。然后先写一下BC #78的题解吧1001 就是在枚举子集的过程中我们发现当n > 1时,x出现了偶数次,所以其对答案的贡献就是0;当 n = 1时,其对答案的贡献是 x1002 简单的排列组合1003 考虑离线之后我们就可以用并查集做了1004 DP 是可以用单调队列优化成O(n)O(n)的 不过我打的是O(n2原创 2016-03-29 20:39:20 · 374 阅读 · 0 评论 -
BZOJ3653: 谈笑风生
对于每一个询问我们可以提出 Ans=min(dep[u]-1,k)*(size[u]-1)+u子树中到u距离<=k的节点的子树节点和 显然后面那个东西是可以用可持久化线段树搞得 好了#include<iostream> #include<cstdlib> #include<cstdio> #include<cstring> using namespace std; char c; #defin原创 2016-03-01 20:40:25 · 475 阅读 · 0 评论 -
BZOJ2223: [Coci 2009]PATULJCI&&BZOJ3524: [Poi2014]Couriers
自己的智商又不够用了。。。。。 一直错查了一天 发现时New_Node的时候没有打return。。。。。 这个错误之前做的题目已经出现过很多次了 感觉自己瞬间拉低整条街 智商 很裸的静态区间k大值 用主席树 2223: #include #include #include #include #include using namespace std; setD; char c; boo原创 2015-12-20 14:52:13 · 520 阅读 · 0 评论 -
BZOJ3674: 可持久化并查集加强版&&BZOJ3673: 可持久化并查集 by zky
妈个鸡。。。。没加强的没有要求在线。。。 我日了狗了 查了半天错。。。。 反正就是用可持久化线段树维护一个可持久化数组具体看代码 /************************************************************** Problem: 3674 User: liutian Language: C++原创 2015-12-22 17:43:02 · 556 阅读 · 0 评论 -
BZOJ1803: Spoj1487 Query on a tree III
裸的主席树+DFS序 然后我差错查了好长时间 发现时查询的时候k没有减 应该到右子树结果到了左子树。。。 #include #include #include #include #include #include #include using namespace std; char c; inline void read(int&a) { a=0;do c=getchar();原创 2015-12-22 21:09:25 · 715 阅读 · 0 评论 -
BZOJ3545: [ONTAK2010]Peaks
离线和在线一样做…#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; char c; inline void read(int &a){a=0;do c=getchar();while(c<'0'||c>'9');while(c原创 2016-06-22 18:53:20 · 395 阅读 · 0 评论