CF1053E Euler tour 构造】的更多相关文章

正解:构造 解题报告: 传送门! 这种题目一般都是首先考虑合法性 这题也不例外,思考怎么样是合法的呢? 有四点: 1)a[1]=a[2n-1],显然不说 2)若a[i]=a[j],则(j-i)&1==0,即ij同奇偶性,dfs序的性质 3)若a[x]=a[y],a[m]=a[n],则(x-m)*(y-n)>0,这个可以用st表做(后面会详细解释下st表的,,,然后有时间会开个倍增专题港下st表什么的QwQ 4)a[i]≠a[i-1] 然后判完可行性就考虑构造鸭 考虑如果存在a[x]=a[y]…
题意 给出一个某些位置不全的欧拉序,求出一个符合条件的,或输出不行 传送门 \(n \le 5*10^5\) 思路 终于不是一道神仙\(dp\) 变成了一道神仙构造 以下简称两相同数围成的是一个区间,基本性质: 两个相同数之间的长度为奇数 头尾一定相同 区间要么完全包含要么不相交 某段区间内已确定的落单的数一定小于区间\(0\)的个数\(+1\),因为一个落单的数除了叶子总得再配一个 对任意一棵大小为\(x\)的子树,序列长度为\(2x-1\) 首先区间不相交就让我们可以分治搞下去,先递归到最小…
[CF1053E]Euler tour 题面 CF 洛谷 大概意思是你有一棵树,然而你并不知道这棵树是啥.给你一个确定了一些位置的欧拉序(就是\(ST\)表求\(LCA\)的那个序列),问你是否存在一个合法的序列,如果可以构造出一个. 题解 首先我们一定能够确定的是以下性质: \(a_1=a_{2n-1}\),因为首位肯定都是根节点 如果\(a_i=a_j\),那么两个位置中间的数的个数一定是偶数个,即\(i,j\)同奇偶.因为子树内每条边都会给序列贡献两个点,所以贡献的点数一定是偶数. 两个两…
Euler Tour Tree最大的优点就是可以方便的维护子树信息,这点LCT是做不到的.为什么要维护子树信息呢..?我们可以用来做fully dynamic connectivity(online). Euler Tour Tree 维护将树中的边u--v变成u->v,v->u后的Euler Tour. 换根: 因为Euler Tour是一个环,那么我们可以在任意一个k->u的地方切断,然后把这段东西接到最后去,这样就把u变成根了 Link: 先换根,然后添加u->v与v->…
Wizard's Tour Time Limit: 50 Sec  Memory Limit: 512 MB Description Input Output Sample Input 4 5 1 2 3 2 2 4 3 4 4 1 Sample Output 2 4 1 2 4 3 2 HINT Solution 首先,一个连通块的答案可以是floor(m / 2).考虑如何构造出一种解. 首先我们先搞出一个dfs树. 那么现在对于一个点,有三种边:1. 非树边:2. 儿子边:3. 父亲边.…
传送门 毒瘤细节题. 首先考虑不合法的情况. 先把相同的值配对,这样就构成了一些区间. 那么如果这些区间有相交的话,就不合法了. 如何判断?DZYO安利了一波st表,我觉得很不错. 接着考虑两个相同的值,它们中间一定只有奇数个数. 然后剩下不合法的情况可以在接下来处理时判断. 接下来还原序列的问题是可以拆分成子问题的. 考虑这两个相同的值夹住的区间. 显然这个区间里是没有值相同的. 对于区间里两个相邻且不全为0的数. 如果是形如0xy0xy0xy的话,我们把0改成y可以变成一个可行解yxyyxy…
最大流求混合图是否存在欧拉回路. 以下内容摘自http://www.cnblogs.com/Missa/archive/2012/12/05/2803107.html 讲的很清楚. 混合图的欧拉回路问题 欧拉回路问题. 1 定义 欧拉通路 (Euler tour)——通过图中每条边一次且仅一次,并且过每一顶点的通路. 欧拉回路 (Euler circuit)——通过图中每条边一次且仅一次,并且过每一顶点的回路. 欧拉图——存在欧拉回路的图. 2 无向图是否具有欧拉通路或回路的判定 G有欧拉通路的…
题外话:很多混合图问题可以转化为有向图问题(将无向边拆为两条有向边) 本题不行,因为只能经过一次 这种问题能想到网络流.. 复习欧拉回路:入度==出度 和uva1380有点相似,要先给无向边定向.原图为G,定向的边单独组成另一个G’ 定向后对任意点,入度==出度,则有了回路. 否则调整原来的无向边.  (如果入度出度奇偶性不同,则无解) 出度增加(in-out/2). 注意U->V变成V->U,U出度-1,V出度+1. 就像在运送”出度”,就是网络流.(满足out>in的点能提供出度)…
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj1860,poj3259,p…
ACM常用算法及练习 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短路(Floyd.Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5.叉乘.判线段相交.然后写个凸包. 6.BFS.DFS,同时熟练hash表(要熟,要灵活,代码要简) 7.…