博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 10054
阅读量:5264 次
发布时间:2019-06-14

本文共 2389 字,大约阅读时间需要 7 分钟。

1 #include
2 #include
3 const int E = 2020; 4 const int N = 55; 5 struct edge { 6 int t, next; 7 }e[E]; 8 int head[E], tot, root[N], map[N], degree[N], n, left[E], right[E], top; 9 bool v[E];10 void init() {11 top = tot = 0;12 memset(degree, 0, sizeof(degree));13 memset(v, 0, sizeof(v));14 memset(head, -1, sizeof(head));15 for(int i = 1; i <= 50; ++i) {16 root[i] = i;17 }18 }19 int find(int a) {20 return a == root[a] ? a : (root[a] = find(root[a]));21 }22 void merge(int a, int b) {23 int aa = find(a);24 int bb = find(b);25 if(aa != bb) {26 if(aa < bb)27 root[bb] = aa;28 else29 root[aa] = bb;30 }31 }32 33 void addedge(int f, int t) {34 e[tot].t = t;35 e[tot].next = head[f];36 head[f] = tot++;37 }38 void dfs(int f) {39 for(int i = head[f]; i != -1; i = e[i].next) {40 if(!v[i]) {41 v[i] = 1;42 v[i ^ 1] = 1;43 dfs(e[i].t);44 left[top] = f;45 right[top++] = e[i].t;46 }47 }48 }49 void pri() {50 for(int i = n - 1; i >= 0; --i) {51 printf("%d %d\n", left[i], right[i]);52 }53 }54 int main() {55 int t, minnum, flag, ca;56 scanf("%d", &t);57 for(int ca = 1; ca <=t; ++ca) {58 init();59 minnum = 100;60 flag = 1;61 scanf("%d", &n);62 for(int i = 0; i < n; ++i) {63 int a, b;64 scanf("%d%d", &a, &b);65 addedge(a, b); addedge(b, a);66 degree[a]++; degree[b]++;67 merge(a,b);68 if(a < minnum) minnum = a;69 if(b < minnum) minnum = b;70 }71 for(int i = 1; i <= 50; ++i) {72 if(degree[i]) {73 if(degree[i] % 2 != 0 || find(i) != minnum) {74 flag = 0;75 break;76 }77 }78 }79 if(ca != 1)80 printf("\n");81 printf("Case #%d\n", ca);82 if(!flag)83 printf("some beads may be lost\n");84 else {85 dfs(minnum);86 pri();87 }88 }89 return 0;90 }

 

转载于:https://www.cnblogs.com/startgo/archive/2013/01/09/2852605.html

你可能感兴趣的文章
为什么每个程序员都应该懂点前端知识?
查看>>
JavaScript中对象是否需要加引号?
查看>>
项目“WebSite”在不受信任的 Web 服务器上。打开此项目可能导致代码在完全信任的情况下执行。...
查看>>
html5 实现网页截屏 页面生成图片(图文)
查看>>
pycharm中使用git以及多分支结构
查看>>
Python内置数据结构之字符串
查看>>
BZOJ1594: [Usaco2008 Jan]猜数游戏
查看>>
斐波那契数列快速计算
查看>>
jQuery浮窗图片到页面中间的代码兼容移动端
查看>>
定位方式 及CSS高级技巧
查看>>
【文学文娱】2017.01.17 周二--《谈谈日本妹子(多图预警)》
查看>>
SQL 游标 Cursor 基本用法
查看>>
java Integer数值==比较面试坑
查看>>
三维地图中的A*寻路
查看>>
头插法和尾插法
查看>>
Django web框架篇:基础
查看>>
Exchange超级实用命令行
查看>>
Git
查看>>
面向对象学习
查看>>
C语言中操作符详解
查看>>