摘要:
题目链接。题意:每个珠子两半有两种不同的颜色组成,相邻两珠子在接触的地方颜色相同,确认一些零碎的珠子,能否还原成完整的项链。分析:把每种颜色看成一个结点,珠子的两半连一条有向边,则题目转化为了欧拉回路问题。注意:注意编号问题,因为颜色1~50,所以最多有50个结点。对欧拉回路输出有疑问的可参考本随笔。#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#include <stack>using nam 阅读全文
posted @ 2013-05-24 20:55
Still_Raining
阅读(497)
评论(0)
推荐(0)
摘要:
对于欧拉回路为什么一定要用栈,偶进行了一下小小的探究(感谢崔学长的数据)。样例如图所示:不用栈,直接输出会怎样呢?void euler(int u){ for(int v=1; v<=n; v++){ if(G[u][v]){ G[u][v]--; G[v][u]--; printf("%d %d\n", u, v); euler(v); } }}输出结果如下:一开始输出路径会是1->2->3->4->1,搜完这些,会从3开始继续搜索并输出,3->5->6->7->3... 阅读全文
posted @ 2013-05-24 07:35
Still_Raining
阅读(463)
评论(0)
推荐(0)
浙公网安备 33010602011771号