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就行,所以给了我们乱搞构造的机会. 我这里给出一种构造思路: 首先一个连通块如果没有要求奇数次的点,那么就可以不管他,如果超过一个连通块内有要求奇数次的点,那么无解. 然后在那个唯一需要走的连通块里,我们随便抠一个生成树出来,从根遍历 ① 首先把每次向下走以及回溯的路径记录到序列的新一位(并不需要一开始就把根节点加入,反正最后会回溯到根,于是最后一个元素添…
如果一个点需要经过奇数次我们就称其为奇点,偶数次称其为偶点. 考虑不合法的情况,有任意两个奇点不连通(自己想想为什么). 那么需要处理的部分就是包含奇点的唯一一个连通块.先随意撸出一棵生成树,然后正常地 dfs 下去.显然,叶子结点会成为奇点,非叶子结点会成为偶点. 当然这会存在不合法的情况,即我们需要改变一些结点的奇偶性.发现 dfs 到 \(u\) 结点的过程中我们可以进行这样一种操作,\(u\to v\to u(fa_v=u)\),它同时改变了 \(u\) 和 \(v\) 的奇偶性.所以我…
题目链接:http://codeforces.com/contest/454/problem/E 题意:给出n个点和m条边,要求每一个点要走指定的奇数次或者是偶数次. 构造出一种走法. 题解:可能一开始会难以入手.其实要想改变这个点的奇偶次数只要回去上一个节点再回来就行.然后上一个节点会在 dfs回朔时再进行修改最后只要关注起点就行了. #include <iostream> #include <cstring> #include <vector> #include &…
codeforces 453C Little Pony and Summer Sun Celebration 这道题很有意思,虽然网上题解很多了,但是我还是想存档一下我的理解. 题意可以这样转换:初始所有点有 \(01\) 状态,每经过一次状态就翻转,求一条路径使得最后状态全 \(1\). 以某个状态 \(1\) 的点开始,搜出它的dfs序.dfs序的长度必定是 \(2n-1\)(因为dfs树有 \(n-1\) 条边,每条边遍历两次).我们把这个dfs序列存在数组 \(res[0..2n-2]\…
[CF453C] Little Poney and Summer Sun Celebration (思维) 题面 给出一张N个点M条边的无向图,有些点要求经过奇数次,有些点要求经过偶数次,要求寻找一条满足要求的路径,且该路径长度不超过点数的四倍. N, M≤100000 分析 如果将图整个遍历一遍再回到起点,每个点都被访问了偶数(2)次.对于那些奇数点x,我们先从x走到x的父亲fa,再从fa走回x,然后再继续回溯.这样fa被多访问了2次,奇偶性不变.而x被多访问了一次,访问次数从偶数变为奇数.最…
CF 453C. Little Pony and Summer Sun Celebration 构造题. 题目大意,给定一个无向图,每个点必须被指定的奇数或者偶数次,求一条满足条件的路径(长度不超\(4n\)).没有输出-1 首先我们应该判断掉-1的情况 图不连通且所有的奇数点不在同一个联通块内 发现只有上述情况可以 为什么 我们发现图不连通但所有的奇数点在同一个联通块内和图连通在本质上是一种情况. 我们在这里就只考虑图连通该怎么办. 首先,我们对于这张图求出他任意一个生成树 之后我们进行dfs…
题意: 给一个集合,有n个可能相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: 看这个就差不多了.LEETCODE SUBSETS (DFS) class Solution { public: vector<vector<int>> subsets(vector<int>& nums) { sort(nums.begin(),nums.end()); DFS(,nums,tmp); ans.push_back(vector<int>()…
题意: 给一个集合,有n个互不相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: DFS方法:由于集合中的元素是不可能出现相同的,所以不用解决相同的元素而导致重复统计. class Solution { public: vector<vector<int>> subsets(vector<int>& nums) { sort(nums.begin(),nums.end()); DFS(,nums,tmp); return ans; } void DF…
N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合法的放置方法.   Input 共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量:如果N=0,表示结束.   Output 共…