传送门:http://codeforces.com/contest/788/problem/B 好题!好题! 首先图不连通的时候肯定答案是0,我们下面讨论图联通的情况 首先考虑,如果我们每条边都经过两边,那么肯定是可行的 因为这样相当于把每条边复制一遍,然后问图中是否存在欧拉路径 既然每条边都出现了两遍,那么所有点的度数一定都是偶数,所以肯定有欧拉路径 现在考虑将某两条边变成出现一遍,这样的话可能会有一些点的度数变成奇数 如果我们把两条非自环的边变成出现一遍,并且这两条边不交于同一个点,那么就会…
大意:$n$结点$m$条边无向图, 满足 $(1)$经过$m-2$条边$2$次 $(2)$经过其余$2$条边$1$次 的路径为好路径, 求所有好路径数 相当于边加倍后再删除两条边, 求欧拉路条数 首先欧拉路径存在等价于奇数度点不超过2个 所以删除自环边一定成立,若删除两条非自环边, 则两边必须有公共点 特判下不连通输出0即可 #include <iostream> #include <algorithm> #include <cstdio> #define REP(i,…
题意: 给出无向图. good way : 仅有两条边只经过一次,余下边全经过两次的路 问你共有多少条不同的good way. 两条good way不同仅当它们所经过的边的集合中至少有一条不同 (很关键) 存在多个边连通分量的情况肯定是0. 当确定某两条边只经过一次的时候: 由于经过边的顺序不重要,余下边全经过两次,至多只有一条good way 那么把剩下经过两次的边拆分成两条经过一次的边,记现在的图是新图 原图中是否存在good way 就等价于新图中是否存在欧拉路 暴力枚举两条边判断肯定是要…
题意:给定n个点,m条边,问能否找到多少条符合条件的路径.需要满足的条件:1.经过m-2条边两次,剩下两条边1次  2.任何两条路的终点和起点不能相同. 欧拉路的条件:存在两个或者0个奇度顶点. 思路:首先把给每条边都再增加一条边,所有点的度数都是偶数.每条边分为普通边和自环边. 1.删去两条没有公共顶点的普通边,会有四个点的度数变成奇数,不符合欧拉路. 2.删去两条有公共顶点的普通边,会有两个点的度数成为奇数,符合 2.删去一个自环边和一个普通边,会有两个点的度数成为奇数,符合 4.删去两条自…
Little boy Igor wants to become a traveller. At first, he decided to visit all the cities of his motherland — Uzhlyandia. It is widely known that Uzhlyandia has n cities connected with m bidirectional roads. Also, there are no two roads in the countr…
D. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little boy Igor wants to become a traveller. At first, he decided to visit all the cities of his motherland — Uzhlyandia. I…
cf788B/789D. Weird journey 题意 n个点m条边无重边有自环无向图,问有多少种路径可以经过m-2条边两次,其它两条边1次.边集不同的路径就是不同的. 题解 将所有非自环的边变成两份.然后去掉两条边,看有没有欧拉路. 如果两条边都不是自环,那么只当他们相邻时(共享一个点),剩下的图有两个奇数度的点.有欧拉路.所以第i个点作为共享的点,有\(C(cnt_i,2)\)种路径. 如果其中一个是自环,那么其他m-1条边任意选一个都可以.有loop*(m-1)条,不过每个自环算了两次…
题目链接:http://codeforces.com/problemset/problem/788/B B. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little boy Igor wants to become a traveller. At first, he decided to vi…
codeforces 407 div1 B题(Weird journey) 传送门 题意: 给出一张图,n个点m条路径,一条好的路径定义为只有2条路径经过1次,m-2条路径经过2次,图中存在自环.问满足条件的路径数 题解: 推论:对于一条边u-->v,我们将其选作为那两条边之一,那么剩下一条边必然与之相邻或者是自环,因为这样才能满足这两条边只走1次. 那么这条边的贡献值为这条边的相邻边数+自环数,假如这条边本身为自环,那么由于剩下的边可以任选(前一个推论),贡献值为m-1 这个AC时间很6啊23…
D. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little boy Igor wants to become a traveller. At first, he decided to visit all the cities of his motherland — Uzhlyandia. I…
首先考虑第一问.每个联通块的情况是相对独立的,所以可以分别求每个联通块的答案.无向图中存在欧拉路的条件是奇点数为0或2,那么合法方案肯定是tp到一个奇点,通过一条欧拉路到另一个奇点,再tp到另一个奇点…… 设共k个联通块,第$i$个里奇点个数为$c_i$,那么答案即为$\sum_{i=1}^k max(1,\frac c2)-1$,最后-1是因为选起点不用浪费传送次数. 关于构造方案,我们先对于每个联通块求它内部的奇点.如果没有的话直接跑欧拉路即可. 如果有奇点,那么必有偶数个,因为每个联通块的…
http://codeforces.com/contest/1038/problem/E E. Maximum Matching time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given nn blocks, each of them is of the form [color11 |value|color2…
题目描述 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 输入输出格式 输入格式: 第一行输入一个正整数n. 以下n行每行两个字母,表示这两个字母需要相邻. 输出格式: 输出满足要求的字符串. 如果没有满足要求的字符串,请输出“No Solution”. 如果有多种方案,请输出前面的字母的ASCII编码尽可能小的(字典序最小)的方案 输入输出样例 输入样例#1: 4 aZ tZ Xt aX 输…
UVA - 10129Play on Words Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solveit to open that doors. Because there is no other way to open the doors, the puzzle is very importantfor us.There is a lar…
题目链接:hdu_5883_The Best Path 题意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大. 题解: 节点 i 的贡献为((du[i] +1/ 2) % 2)* a[i] 如果为欧拉回路,需要枚举一下起点,然后取一下最大 #include<bits/stdc++.h> #define F(i,a,b) for(int i=a;i<=b;i++) using namespace std; ; int t,n,m,du[N],a[N],x…
题目链接: http://poj.org/problem?id=2513 http://bailian.openjudge.cn/practice/2513?lang=en_US Time Limit: 5000MS Memory Limit: 128000K Description You are given a bunch of wooden sticks. Each endpoint of each stick is colored with some color. Is it possi…
The Best Path Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 18    Accepted Submission(s): 8 Problem Description Alice is planning her travel route in a beautiful valley. In this valley, there…
现在写到欧拉路,理解起来并不算特别困难...吧... 但是非常恶心的是每次都要调试半天,做不到一遍两遍就能ac 每次写程序都对于程序的整体构架没有清晰的思路,想到哪里写到哪里真的是个非常差的习惯[尽管在写不出来的时候非常有用],所以快点改掉吧. 似乎也没有什么特别困难的部分,相关的题在oj上是p1209-p1211 数组一定要记得稍微开大一点,不要顺手就打一个数据范围上去,很初级也很常见的错误 应该深入理解一下dfs之后记录的作用,但是我到现在还不理解 以p1210为例   ☆骑马修栅栏    …
题目:http://codeforces.com/contest/36/problem/E 找出两条欧拉路覆盖无向图. 套上欧拉路模板.用过的边要记录. 注意 一个连通块.4个奇度数点 的情况是在两个奇度数点之间连一条边,跑完欧拉路后再断开!而不是…… 特别奇怪的一点是如果不写那个  跑完欧拉路后发现队列里的边不足m条就输出-1  就会WA. 但Zinn没有这个特判,我也觉得这种情况很奇怪.可能是代码别的地方写错了? #include<iostream> #include<cstdio&…
描述 小Hi和小Ho最近在玩一个解密类的游戏,他们需要控制角色在一片原始丛林里面探险,收集道具,并找到最后的宝藏.现在他们控制的角色来到了一个很大的湖边.湖上有N个小岛(编号1..N),以及连接小岛的M座木桥.每座木桥上各有一个宝箱,里面似乎装着什么道具. 湖边还有一个船夫,船夫告诉主角.他可以载着主角到任意一个岛上,并且可以从任意一个岛上再载着主角回到湖边,但是主角只有一次来回的机会.同时船夫告诉主角,连接岛屿之间的木桥很脆弱,走过一次之后就会断掉. 因为不知道宝箱内有什么道具,小Hi和小Ho…
求图中最短的欧拉路.题解:因为是一棵树,因此当从某一个节点遍历其子树的时候,如果还没有遍历完整个树,一定还需要再回到这个节点再去遍历其它子树,因此除了从起点到终点之间的路,其它路都被走了两次,而我们要求总的路程最短,那么我们就让从起点到终点的路最长即可,也就是树的直径.所以答案就是所有边权的两倍再减去树的直径 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #…
B. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little boy Igor wants to become a traveller. At first, he decided to visit all the cities of his motherland — Uzhlyandia. I…
瞎搞了一个ans+=du*(du-1)/2 wa20分,好桑心(话外音:居然还有二十分,出题人太周到了) 还是判欧拉路 题解没太仔细想,感觉还是kx的思路明白 具体就是:因为每条边要走两遍,可以把一条无向虫洞看成两条边,暂且叫它虚边(Lockey瞎起的),然后选出并删去两条边,当然,这两条边不是同一条边变来的,删完之后,原来的位置一条边变两条边,现在只剩下一条虚边,使得每条边可以被经历一边,即判断删去两条边使得剩下路径的是欧拉路或欧拉回路 首先,要想到每条边变虚边都是变成了两条,则只要有连边,点…
题目传送门(内部题119) 输入格式 第一行,三个整数$T,M,N$. 接下来的$N$行,每行两个整数$u_i,v_i$($i$从$1$开始编号).允许$u_i=v_i$,也允许同样的简单词多次出现. 输出格式 第一行,一个字符串$YES$或$NO$,表示能否将这$N$个简单词组合成一个复杂词. 如果能,则第二行输出$N$个整数,第$i$个数$p_i$表示组成复杂词的第$i$个简单词是输入的编号为$|p_i|$的简单词.注意,当$T=1$且使用编号为$|p_i|$的简单词时交换了两个字符的顺序,…
题目传送门(内部题4) 输入格式 第一行两个整数$n,m$,表示行星和虫洞的数量.接下来$m$行,每行两个整数$u,v$,表示存在一个双向虫洞直接连接$u$和$v$.每一个虫洞最多会被描述一次. 输出格式 一行一个整数,代表本质不用的航线的数量. 样例 样例输入 5 41 21 31 41 5 样例输出 6 数据范围与提示 样例解释:本质不同的航线有$6$条:2-1-3-1-4-1-52-1-3-4-5-1-42-1-4-1-5-1-33-1-2-1-5-1-43-1-2-1-4-1-54-1-…
// 很久不写图论,连模板也不熟悉了0.0 // 这题是一个技巧性比较高的暴力DFS Catenyms 题目大意 定义catenym为首尾字母相同的单词组成的单词对, 例如: dog.gopher gopher.rat rat.tiger aloha.aloha arachnid.dog 而catenym系统则是多个利用该规则组成的单词串,例如: aloha.aloha.arachnid.dog.gopher.rat.tiger 给定一组单词,让你判断是否能组成catenym系统,且每个单词只能…
题目大意:https://www.cnblogs.com/Juve/articles/11207540.html—————————> 题解:网上都是一句话题解:将所有的边拆成两条,问题变成去掉两条边,使得原图存在一条欧拉路径.注意新图中所有点的度数均为偶数,只需按照去掉任意2个自环.去掉任意1个自环和任意一条边.去掉两条有公共顶点的边进行讨论即可.注意图不连通的判断方式,不是点不连通,而是边不连通. 这显然十分晦涩难懂 题目要求m-2条边经过两次,2条边经过1次. 如果不考虑有两条边经过一次,那…
题目描述 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 输入输出格式 输入格式: 第一行输入一个正整数n. 以下n行每行两个字母,表示这两个字母需要相邻. 输出格式: 输出满足要求的字符串. 如果没有满足要求的字符串,请输出“No Solution”. 如果有多种方案,请输出前面的字母的ASCII编码尽可能小的(字典序最小)的方案 输入输出样例 输入样例#1: 4 aZ tZ Xt aX 输…
Play on Words Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11846   Accepted: 4050 Description Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve it to open that doors. Because ther…
欧拉路径是指能从一个点出发能够“一笔画”完整张图的路径:(每条边只经过一次而不是点) 在无向图中:如果每个点的度都为偶数 那么这个图是欧拉回路:如果最多有2个奇数点,那么出发点和到达点必定为该2点,那么这个路径就为欧拉路:(前提都是该图连通) 在有向图中:如果每个店的出度和入度都相同,那么为欧拉回路:如果最多只能有2个点的出度不等于入度,并且其中一个点的 入度=出度+1,另一点的 入度+1=出度,那么为欧拉路:(前提图连通) //因为字符从第一个到最后一个,所以用有向图 #include<std…