UVa 10054 The Necklace BFS+建模欧拉回路
算法指南
主要就是建立欧拉回路
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <memory.h>
using namespace std;
const int maxn=;
int G[maxn+][maxn+];
int deg[maxn+];
struct edge {
int u,v;
edge(int u,int v):u(u),v(v) {}
};
vector<edge>ans;
void slove(int u) {
for(int v=; v<=maxn; v++) {
if(G[u][v]) {
G[u][v]--;
G[v][u]--;
slove(v);
ans.push_back(edge(u,v));
}
}
} int main() {
int t,cas=,n;
scanf("%d",&t);
int N=t;
while(t--) {
memset(G,,sizeof(G));
memset(deg,,sizeof(deg));
cas++;
scanf("%d",&n);
int start;
for(int i=; i<n; i++) {
int u,v;
scanf("%d%d",&u,&v);
G[u][v]++;
G[v][u]++;
deg[u]++;
deg[v]++;
start=u;
}
int flag=true;
for(int i=; i<=maxn; i++) {
if(deg[i]%) {
flag=false;
break;
}
}
if(flag) {
ans.clear();
slove(start);
if(ans.size()!=n||ans[].v!=ans[ans.size()-].u) flag=false;
}
printf("Case #%d\n", cas);
if(flag==false) {
printf("some beads may be lost\n");
} else {
for(int i=ans.size()-; i>=; i--) {
printf("%d %d\n",ans[i].u,ans[i].v);
}
}
if(cas!=N)
printf("\n");
}
return ;
}
UVa 10054 The Necklace BFS+建模欧拉回路的更多相关文章
- UVA 10054 The Necklace 转化成欧拉回路
题意比较简单,给你n个项链碎片,每个碎片的两半各有一种颜色,最后要把这n个碎片串成一个项链,要求就是相邻碎片必须是同种颜色挨着. 看了下碎片总共有1000个,颜色有50种,瞬间觉得普通方法是无法在可控 ...
- uva 10054 The Necklace 拼项链 欧拉回路基础应用
昨天做了道水题,今天这题是比较水的应用. 给出n个项链的珠子,珠子的两端有两种颜色,项链上相邻的珠子要颜色匹配,判断能不能拼凑成一天项链. 是挺水的,但是一开始我把整个项链看成一个点,然后用dfs去找 ...
- UVA 10054 The Necklace (无向图的欧拉回路)
本文链接:http://www.cnblogs.com/Ash-ly/p/5405904.html 题意: 妹妹有一条项链,这条项链由许多珠子串在一起组成,珠子是彩色的,两个连续的珠子的交汇点颜色相同 ...
- UVA 10054 The Necklace(欧拉回路,打印路径)
题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- uva 10054 The Necklace(欧拉回路)
The Necklace My little sister had a beautiful necklace made of colorful beads. Two successive beads ...
- UVa 10054 The Necklace(无向图欧拉回路)
My little sister had a beautiful necklace made of colorful beads. Two successive beads in the neckla ...
- UVA 10054 the necklace 欧拉回路
有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环. 可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路 首先判断是否 ...
- UVa 10054 The Necklace【欧拉回路】
题意:给出n个珠子,珠子颜色分为两半,分别用1到50之间的数字表示, 现在给出n个珠子分别的颜色,问是否能够串成一个环.即为首尾相连,成为一个回路 判断是否构成一个环,即判断是否为欧拉回路,只需要判断 ...
- 【欧拉回路】UVA - 10054 The Necklace
题目大意: 一个环被切割成了n个小块,每个小块有头尾两个关键字,表示颜色. 目标是判断给出的n个小块能否重构成环,能则输出一种可行解(按重构次序输出n个色块的头尾颜色).反之输出“some beads ...
随机推荐
- (转)IOS学习笔记-2015-03-29 int、long、long long取值范围
unsigned - - unsigned - - unsigned __int64的最大值: __int64的最小值:- unsigned __int64的最大值:
- Linux Master/Baremetal Remote 配置下的裸机调试
为了实现在ZC702开发板上的两颗Cortex-A9处理器上实现Linux Master/Baremetal Remote 配置,并对Remote端的裸机程序进行调试,需要注意的几点如下: 一.建立p ...
- sublime2 Ctags 快捷键
Commands Listing Command Key Binding Alt Binding Mouse Binding rebuild_ctags ctrl+t, ctrl+r navi ...
- SVG绘制圆形简单示例分享
今天分享“svg绘制圆形”部分 1.简单圆形 效果图如下: 关键代码: <svg xmlns="http://www.w3.org/2000/svg" version=&qu ...
- div 被Object盖住的。解决办法
今天遇到一个比较头疼的问题,就是在一个标签上右键,弹出的菜单div被标签内的Office控件Object挡住了下半部分,始终无法显示.查了好多解决方案,最终都不能解决问题,几乎都要放弃了.中午吃饭的时 ...
- ng表单验证,提交以后才显示错误
只在提交表单后显示错误信息 有时候不想在用户正在输入的时候显示错误信息. 当前错误信息会在用户输入表单时立即显示. 由于Angular很棒的数据绑定特性,这是可以发生的. 因为所有的事务都可以在一瞬间 ...
- JavaScript中将JSON的字符串解析成JSON数据格式
1.一种为使用eval()函数 var jsonObj=eval("("+data+")"); 2.使用Function对象来进行返回解析 var jsonst ...
- ul动态增加li
--> aaa bbb <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
- HDU1003 dp 动态规划解析
Input The first line of the input contains an integer T(1<=T<=20) which means the number of te ...
- LinkedHashMap和HashMap的比较使用(转载)
LinkedHashMap和HashMap的比较使用 ? import java.util.HashMap; import java.util.Iterator; import java.util.L ...