首页 > 代码库 > URAL 1176. Hyperchannels 欧拉回路
URAL 1176. Hyperchannels 欧拉回路
题目来源:URAL 1176. Hyperchannels
题意:求补图的欧拉回路
思路:模版
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxm = 40010; const int maxn = 1010; int first[maxn], cnt; struct edge { int u, v, next; }e[maxn*maxn]; int ans[maxm]; bool vis[maxm]; int len; void AddEdge(int u, int v) { e[cnt].u = u; e[cnt].v = v; e[cnt].next = first[u]; first[u] = cnt++; } void dfs(int u) { for(int i = first[u]; i != -1; i = e[i].next) { if(!vis[i]) { vis[i] = true; dfs(e[i].v); ans[len++] = i; } } } int main() { int n, s; while(scanf("%d %d", &n, &s) != EOF) { memset(first, -1, sizeof(first)); cnt = 0; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { int x; scanf("%d", &x); if(!x && i != j) { AddEdge(i, j); } } } memset(vis, 0, sizeof(vis)); len = 0; dfs(s); for(int i = len-1; i >= 0; i--) printf("%d %d\n", e[ans[i]].u, e[ans[i]].v); } return 0; }
URAL 1176. Hyperchannels 欧拉回路
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。