uva 10054 欧拉回路
2015-07-18 00:21
246 查看
以颜色为节点,每个珠子是一条边,求欧拉回路
注意输出必须是这样,这种顺序
注意输出必须是这样,这种顺序
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int mp[55][55], mark[55]; int cnt[55]; int N; void dfs( int x ){ for( int i = 1; i <= 50; i++ ){ if( mark[i] && mp[x][i] ){ mp[x][i]--; mp[i][x]--; dfs( i ); printf( "%d %d\n", i, x ); } } } int main(){ int T, Case = 1; scanf( "%d", &T ); while( T-- ){ scanf( "%d", &N ); memset( mp, 0, sizeof( mp ) ); memset( cnt, 0, sizeof( cnt ) ); memset( mark, 0, sizeof( mark ) ); for( int i = 0; i < N; i++ ){ int temp1, temp2; scanf( "%d%d", &temp1, &temp2 ); mp[temp1][temp2]++; mp[temp2][temp1]++; cnt[temp1]++; cnt[temp2]++; mark[temp1] = mark[temp2] = 1; } bool flag = true; for( int i = 1; i <= 50; i++ ){ if( cnt[i] % 2 ) flag = false; } if( Case != 1 ){ puts(""); } if( !flag ){ printf( "Case #%d\nsome beads may be lost\n", Case++ ); }else{ printf( "Case #%d\n", Case++ ); for( int i = 1; i <= 50; i++ ){ if( mark[i] ){ dfs( i ); } } } } return 0; }
相关文章推荐
- 摘自大牛的见解
- MySQL导入和导出数据库的方法
- 立德、立言、立行
- 1044: [HAOI2008]木棍分割
- 博文点评后的一点闲扯
- linux_oracle配置文档
- Lowest Common Ancestor of a Binary Tree
- linux_DHCP配置文档
- openerp学习笔记 模块结构分析
- 函数的定义和调用
- 黑马程序员----java网络编程基础
- pat 1027. Colors in Mars (20)
- Linux_lvs集群
- HDU 1232 畅通工程(求集合个数)
- Java数据库创建于字符编码以及操作
- poj(2828)——Buy Tickets(线段树维护点&点更新)
- SICP-Exercise 1.6
- 第4章 进程(1)
- win7系统自带截图工具快捷键是什么?怎么设置快捷键
- U-Boot启动过程--详细版的完全分析