CF 453C. Little Pony and Summer Sun Celebration 构造题. 题目大意,给定一个无向图,每个点必须被指定的奇数或者偶数次,求一条满足条件的路径(长度不超\(4n\)).没有输出-1 首先我们应该判断掉-1的情况 图不连通且所有的奇数点不在同一个联通块内 发现只有上述情况可以 为什么 我们发现图不连通但所有的奇数点在同一个联通块内和图连通在本质上是一种情况. 我们在这里就只考虑图连通该怎么办. 首先,我们对于这张图求出他任意一个生成树 之后我们进行dfs…
codeforces 453C Little Pony and Summer Sun Celebration 这道题很有意思,虽然网上题解很多了,但是我还是想存档一下我的理解. 题意可以这样转换:初始所有点有 \(01\) 状态,每经过一次状态就翻转,求一条路径使得最后状态全 \(1\). 以某个状态 \(1\) 的点开始,搜出它的dfs序.dfs序的长度必定是 \(2n-1\)(因为dfs树有 \(n-1\) 条边,每条边遍历两次).我们把这个dfs序列存在数组 \(res[0..2n-2]\…
http://codeforces.com/contest/456  CF454E Codeforces Round #259 (Div. 1) C Codeforces Round #259 (Div. 2) E Little Pony and Summer Sun Celebration time limit per test 1 second memory limit per test 256 megabytes input standard input output standard o…
CF453C Little Pony and Summer Sun Celebration 题解 这道题要求输出任意解,并且路径长度不超过4n就行,所以给了我们乱搞构造的机会. 我这里给出一种构造思路: 首先一个连通块如果没有要求奇数次的点,那么就可以不管他,如果超过一个连通块内有要求奇数次的点,那么无解. 然后在那个唯一需要走的连通块里,我们随便抠一个生成树出来,从根遍历 ① 首先把每次向下走以及回溯的路径记录到序列的新一位(并不需要一开始就把根节点加入,反正最后会回溯到根,于是最后一个元素添…
题目链接:http://codeforces.com/contest/454/problem/E 题意:给出n个点和m条边,要求每一个点要走指定的奇数次或者是偶数次. 构造出一种走法. 题解:可能一开始会难以入手.其实要想改变这个点的奇偶次数只要回去上一个节点再回来就行.然后上一个节点会在 dfs回朔时再进行修改最后只要关注起点就行了. #include <iostream> #include <cstring> #include <vector> #include &…
题意:给n个点m条边的无向图,并给出每个点的访问次数奇偶,求构造一条满足条件的路径(点和边都可以走). 解法:这道题还蛮有意思的.首先我们可以发现在一棵树上每个儿子的访问次数的奇偶是可以被它的父亲控制的,因为可以x->fa->x这样的话x和父亲的访问次数都+1了,同样道理x的父亲的访问次数奇偶也可以被其父亲的父亲控制.由此可得,只有根节点不能被别人控制,但是因为回溯的缘故,我们可以通过控制最后回溯到根节点的这一步走不走来控制根节点的奇偶.这道题就解了. 这里有一个细节:因为图不一定连通,不能只…
如果一个点需要经过奇数次我们就称其为奇点,偶数次称其为偶点. 考虑不合法的情况,有任意两个奇点不连通(自己想想为什么). 那么需要处理的部分就是包含奇点的唯一一个连通块.先随意撸出一棵生成树,然后正常地 dfs 下去.显然,叶子结点会成为奇点,非叶子结点会成为偶点. 当然这会存在不合法的情况,即我们需要改变一些结点的奇偶性.发现 dfs 到 \(u\) 结点的过程中我们可以进行这样一种操作,\(u\to v\to u(fa_v=u)\),它同时改变了 \(u\) 和 \(v\) 的奇偶性.所以我…
正题 题目链接:https://www.luogu.com.cn/problem/CF453C 题目大意 \(n\)个点\(m\)条边的一张无向图,每个节点有一个\(w_i\)表示该点需要经过奇数/偶数次. 求一条满足条件的长度不超过\(4n\)的路径 \(1\leq n,m\leq 10^5\) 解题思路 一个结论就是一棵树是一定有解的,出了起终点每个点有入有出,如果每个点的入和出视为点的话拿去树上匹配,因为是联通图显然能够匹配并且一个点的入次数不会超过儿子个数*2+1次(好像是),这样总共次…
[CF453C] Little Poney and Summer Sun Celebration (思维) 题面 给出一张N个点M条边的无向图,有些点要求经过奇数次,有些点要求经过偶数次,要求寻找一条满足要求的路径,且该路径长度不超过点数的四倍. N, M≤100000 分析 如果将图整个遍历一遍再回到起点,每个点都被访问了偶数(2)次.对于那些奇数点x,我们先从x走到x的父亲fa,再从fa走回x,然后再继续回溯.这样fa被多访问了2次,奇偶性不变.而x被多访问了一次,访问次数从偶数变为奇数.最…
Little Pony and Harmony Chest 题解: 因为 1 <= ai <= 30 所以  1 <= bi <= 58, 因为 59 和 1 等效, 所以不需要59. [1, 58]只有16个质数,对于这16个质数去状压. 对于1->58的数,我们计算出每个数对于质数来说的状态,然后转移. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_i…