
欧拉路
huanzhizun
这个作者很懒,什么都没留下…
展开
-
poj 1041 John's trip 欧拉路
裸欧拉路,至于字典序就用连接表的时候按街道大小从小到大存边即可。#include#include#include#include#includeusing namespace std;int vis[2005],in[2005],it[45];int a[2005],cnt,b[2005],tot;struct pi{ int to; int id;}pp;原创 2015-03-25 21:20:10 · 375 阅读 · 0 评论 -
poj 1386 Play on Words 欧拉路
把一个字符串的首位字母连边,剩下的就是是否存在欧拉路的问题。#include#include#include#include#includeusing namespace std;int in[26],out[26],a[27],b[27],pa[10005];char c[1005];vectorg[26*26];int vis[26*26],use[26*26];str原创 2015-03-25 21:23:23 · 492 阅读 · 0 评论 -
poj 2513 Colored Sticks 欧拉路
水欧拉路,直接颜色离散化然后建边,或者并查集。#include#include#include#includeusing namespace std;const int maxn=250005;struct pi{ char c[10];}pp[maxn*2];struct ppi{ char c[10],d[10];}pp1[maxn];int cmp(p原创 2015-03-25 21:26:10 · 446 阅读 · 0 评论 -
poj 2337 Catenyms 欧拉路
对每个字符串首尾字母建边,对于字典序则先把字符串整个排序,然后优先遍历字典序比较小的,注意字符串长度不止20!!!!(把我wa到死)#include#include#include#include#includeusing namespace std;int in[27],out[27],use[27],vis[27],it[27];int a[1005],cnt;struct原创 2015-03-25 21:28:20 · 389 阅读 · 0 评论 -
hdu3018 Ant Trip 欧拉路
本题并不是要判断是否存在欧拉路,而是要找多少个欧拉路,所以可以把图分成几个连通分量,对于每个联通分量统计奇数度点的个数假如是a,那么有a/2个欧拉路,注意a=0的情况,注意如果一个连通分量里没有边但有点不用管它。#include#include#include#includeusing namespace std;int in[100005];int a[100005];int原创 2015-03-25 21:17:32 · 447 阅读 · 0 评论 -
欧拉路问题
首先对于无向图的欧拉路的成立条件是:1、联通 2、每个点度数为偶数或者当且仅当存在两个点读书为奇数对于有向图:1、每个点度数的出度等于入度(欧拉回路)2、一个点出度比入度大一,另一个点入度比出度大一,其他点入度与出度相等。至于怎样寻找欧拉路,首先很好确定起点(很好确定),然后直接dfs,但是要注意的是一定要用后序遍历,因为只有后序遍历对于入度比出度大的点才能被作为终点。下面是模板:原创 2015-03-23 10:48:58 · 642 阅读 · 3 评论 -
Codeforces Round #288 (Div. 2) D Tanya and Password
裸欧拉路,至于对欧拉路不了解的同学可以看本博客里对欧拉路的解释。对于abc这个字符串,把ab、bc分别看成一个点连接一条边,然后直接欧拉路即可。下面是AC代码:#include#include#include#include#includeusing namespace std;vectorg[10005];int vis[100005];int in[10005],o原创 2015-03-23 11:20:59 · 404 阅读 · 0 评论