首页 > 代码库 > POJ 2230 解题报告
POJ 2230 解题报告
分析:
基础的欧拉路算法,变化在于要求每条边正向和反向各走一遍。
链式前向星构图,只要标记走过的单向边,边找边输出即可。
code
#include <iostream>#include <cstdio>using namespace std;struct node { int v, ne;} edge[100009];int head[10009], vis[100009], cnt = 1;int n, m, x, y;void addedge (int u, int v) { edge[++cnt].v = v; edge[cnt].ne = head[u]; head[u] = cnt;}void EulerianP (int x) { for (int i = head[x]; i != 0; i = edge[i].ne) { if (!vis[i]) { vis[i] = 1; EulerianP (edge[i].v); } } printf ("%d\n", x);}int main(){ scanf ("%d %d", &n, &m); for (int i = 1; i <= m; i++) { scanf ("%d %d", &x, &y); addedge (x, y); addedge (y, x); } EulerianP (1); return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。