首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
POJ 2337 欧拉回路
】的更多相关文章
poj 2337 欧拉回路输出最小字典序路径 ***
把26个小写字母当成点,每个单词就是一条边. 然后就是求欧拉路径. #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<map> using namespace std; #define MOD 1000000007 const int INF=0…
POJ 2337 欧拉回路
题意: 如果给出的单词能够首尾相接,请按字典序输出单词,中间要加'.' 否则输出三个"*". 思路: 欧拉回路 记得按字典序排序哦~ 加边的时候要倒着加.(邻接表遍历的时候是反着的) 记得清空vis数组(因为这个无脑错误WA了好长时间.....) 随便搞搞 就能过了. 数据不是很强- #include <cstdio> #include <cstring> #include <algorithm> using namespace std; char…
poj 2337 && zoj 1919 欧拉回路+连通性判断
题目要求按字典序排列,而且可能有重边 所以一开始就将数组从大到小排列,那么我将字符串加入链表时就会令小的不断前移,大的被挤到后面 这里有一点问题就是我一开始使用的是qsort: int cmp(const void *s1 , const void *s2){ return strcmp((char*)s1 , (char*)s2)<0;} qsort(str , n , sizeof(str[0]) , cmp) poj一直wa,试了发zoj却过了,可能是编译器原因吧,然后将字符串放入了…
POJ 2337 Catenyms (欧拉回路)
Catenyms Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8173 Accepted: 2149 Description A catenym is a pair of words separated by a period such that the last letter of the first word is the same as the last letter of the second. For e…
POJ 2337 【字典序】【欧拉回路】
题意: 给你一些单词,判断这些单词能否在保证首尾单词相同的情况下连成一排. 如果有多组解,输出字典序最小的一组解. 这题... WA了两天. 错误有以下: 1.没有初始化好起始位置,默认起始位置是a了.想想想如果单词中都不带a开头的不就傻逼了吗. 2.没有理解好字典序,觉得只要保证每次都从尽量小的字母开始往下搜索就可以了,其实不然,我这样只是使得我下次找到的字母字典序最小而没有保证我本次找到的字母是字典序最小的.譬如若同时存在ab和aba我会优先搜索aba,但是事实上ab的字典序更小. #inc…
POJ 2337 Catenyms
http://poj.org/problem?id=2337 题意: 判断给出的单词能否首尾相连,输出字典序最小的欧拉路径. 思路: 因为要按字典序大小输出路径,所以先将字符串排序,这样加边的时候就会优先加字典序小的边,dfs的时候也就会先走字典序小的边. 判断一下图的连通性以及是否存在欧拉道路. 然后进行深搜寻找欧拉路径,因为欧拉路径时要逆序输出的,所以这里需要先保存起来,最后再次逆序输出即可得到正确的路径. #include<iostream> #include<algorithm&…
POJ 2337 Catenyms(欧拉回(通)路:路径输出+最小字典序)
题目链接:http://poj.org/problem?id=2337 题目大意:给你n个字符串,只有字符串首和尾相同才能连接起来.请你以最小字典序输出连接好的单词. 解题思路:跟POJ1386一个意思,就是把26个字母当成点,单词当做有向边,判断欧拉回(通)路.但是要输出路径也就是单词,而且要求字典序最小. 可以通过将单词先排序再添加边使字典序最小,还有注意起点,如果有一个出度比入度大1的点,就从这个点出发,否则从最小的点出发. 代码: #include<iostream> #include…
poj 1041(欧拉回路+输出字典序最小路径)
题目链接:http://poj.org/problem?id=1041 思路:懒得写了,直接copy吧:对于一个图可以从一个顶点沿着边走下去,每个边只走一次,所有的边都经过后回到原点的路.一个无向图存在欧拉回路的充要条件是每个顶点的度是偶数, 对于有向图存在欧拉回路的条件是每个顶点的出度等于入度(就是出去的边数等于进来的边数).根据这个首先判断存在欧拉回路不, 如果存在然后用DFS去找欧拉回路.DFS的思想等效于先找一个环,然后对环上所有点递归DFS,并且把这些递归产生的路插入这个环中. 实际上…
poj 1780 , poj 1392 欧拉回路求前后相互衔接的数字串
两道题目意思差不多 第一题是10进制 , 第二题是2进制的 都是利用欧拉回路的fleury算法来解决 因为我总是希望小的排在前面,所以我总是先将较小数加入栈,再利用另一个数组接收答案,但是这里再从栈中导出来答案要倒一下了,这一点要注意 poj 1780 #include <cstdio> #include <cstring> #include <cmath> using namespace std; #define N 1000010 int ans[N] , cnt[…
poj 2337 Catenyms 【欧拉路径】
题目链接:http://poj.org/problem?id=2337 题意:给定一些单词,假设一个单词的尾字母与还有一个的首字母同样则能够连接.问能否够每一个单词用一次,将全部单词连接,能够则输出字典序最小的序列. 代码: (bin 神的板子) #include <stdio.h> #include <ctime> #include <math.h> #include <limits.h> #include <complex> #include…