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],就说明[x,y]这一段是棵子树,于是用一点儿分治思想,先做[x,y],这样就解决了一个子问题,就可以删去[x+1,y],看到这种删除操作就应该能想到并查集维护一波,over
然后这么操作完之后就不会剩下相等的非0数了
然后接着考虑,如果有xy0或0yx的排列,就直接把0=x,然后把xy丢了(就还会剩一个x
如果有xyz这样的序列,就说明不可能了搞不出来辣
然后如果上面这个操作也搞完之后,如果数据是可构造的,就会变成,这样子:X0...0A10...0A20...X
然后就递归着做就好辣
设当前树根为rt,搞个双端队列,把当前的数据放进去,每次看队头队尾两元素(h&t
如果h=t=0,找到一个麻油出现过的值x,令h=t=rt=x,弹去h&t
如果h*t=0,h2+t2!=0,不妨设h=0,t!=0,令rt=h=t,弹去h&t,
如果h!=0,t!=0,不妨选h,令h旁边的点(必为0)=rt,弹去h&rt
就这样,,,具体看代码趴QAQ
代码咕了,,,中午也许会放趴QAQ
CF1053E Euler tour 构造的更多相关文章
- CF1053E Euler tour
题意 给出一个某些位置不全的欧拉序,求出一个符合条件的,或输出不行 传送门 \(n \le 5*10^5\) 思路 终于不是一道神仙\(dp\) 变成了一道神仙构造 以下简称两相同数围成的是一个区间, ...
- 【CF1053E】Euler tour
[CF1053E]Euler tour 题面 CF 洛谷 大概意思是你有一棵树,然而你并不知道这棵树是啥.给你一个确定了一些位置的欧拉序(就是\(ST\)表求\(LCA\)的那个序列),问你是否存在一 ...
- Euler Tour Tree与dynamic connectivity
Euler Tour Tree最大的优点就是可以方便的维护子树信息,这点LCT是做不到的.为什么要维护子树信息呢..?我们可以用来做fully dynamic connectivity(online) ...
- 【Codeforces858F】Wizard's Tour [构造]
Wizard's Tour Time Limit: 50 Sec Memory Limit: 512 MB Description Input Output Sample Input 4 5 1 2 ...
- 2018.09.25 codeforces1053E. Euler tour(并查集+st表+模拟)
传送门 毒瘤细节题. 首先考虑不合法的情况. 先把相同的值配对,这样就构成了一些区间. 那么如果这些区间有相交的话,就不合法了. 如何判断?DZYO安利了一波st表,我觉得很不错. 接着考虑两个相同的 ...
- poj1637--Sightseeing tour(最大流)
最大流求混合图是否存在欧拉回路. 以下内容摘自http://www.cnblogs.com/Missa/archive/2012/12/05/2803107.html 讲的很清楚. 混合图的欧拉回路问 ...
- uva10735 Euler Circuit
题外话:很多混合图问题可以转化为有向图问题(将无向边拆为两条有向边) 本题不行,因为只能经过一次 这种问题能想到网络流.. 复习欧拉回路:入度==出度 和uva1380有点相似,要先给无向边定向.原图 ...
- poj 题目分类(2)
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj329 ...
- ACM常用算法及练习(1)
ACM常用算法及练习 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短 ...
随机推荐
- Nginx(七)-- 反向代理
1.概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet上请求连接的 ...
- urllib 基础模块
(1) urllib.request:最基本的HTTP请求模块,用来模拟发送请求,就像在浏览器里输入网址然后回车一样(2) urllib.error:异常处理模块,如果出现请求错误,我们可以捕获这些异 ...
- goto的用法
using UnityEngine; using System.Collections; public class goto1 : MonoBehaviour { public bool can = ...
- flask livereload用法
#coding=utf-8 from flask import Flask from flask_script import Manager app = Flask(__name__) manager ...
- spring mvc 跨域请求处理——spring 4.2 以上
Controller method CORS configuration You can add to your @RequestMapping annotated handler method a ...
- 题目1100:最短路径(最短路径问题进阶dijkstra算法)
题目链接:http://ac.jobdu.com/problem.php?pid=1100 详细链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...
- LeetCode 37 Sudoku Solver(求解数独)
题目链接: https://leetcode.com/problems/sudoku-solver/?tab=Description Problem : 解决数独问题,给出一个二维数组,将这个数独 ...
- sencha touch 类的使用
sencha touch 有一套自己的类机制,可以以面向对象的方式去写代码,封装业务逻辑,sencha touch 的组件.插件.api等都建立在这一套类机制的上面 在实际开发中,我们需要遵循这一套机 ...
- SocketAsyncEventArgs的释放问题
起因是发现一个同事编写的程序运行两个月左右,占用了服务器20G左右的内存.用WinDbg查看发现存在大量的Async Pinned Handles,而它们的gcroot都来自于SocketAsyncE ...
- Python 安装出错:Setup script exited with error: command 'gcc' failed with exit status 1
退出当前环境: logout (再重新登录进去) yum install python-devel -yyum install libevent-devel -y 把环境更新下yum instal ...