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

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

求欧拉回路。

对全图进行dfs,从规定起点开始。过程中记录经过了哪些边,以保证每条边只经过一次。当一个点的所有边都遍历完成后,把该点入栈。最后依次弹栈得到的就是欧拉路径。被入栈的点都是走投无路的点,如果存在欧拉路径,第一次出现的走投无路一定是在走回到起点时,因为其他情况无论怎么走只可能略过一些边,而不可能走进死路。

本题要把每条边加为双向边。

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
#include 
#include
#include
#include
using namespace std; #define maxn 10005 #define maxm 100005 struct Edge {
int v, next; }edge[maxm]; int n, m; int head[maxn]; int ecount; bool vis[maxm]; void addedge(int a, int b) {
edge[ecount].v = b; edge[ecount].next = head[a]; head[a] = ecount++; } void dfs(int a) {
for (int i = head[a]; i != -1; i = edge[i].next) {
if (vis[i]) continue; int v= edge[i].v; vis[i] = true; dfs(v); } printf("%d\n", a + 1); } int main() {
//freopen("t.txt", "r", stdin); memset(head, -1, sizeof(head)); ecount = 0; scanf("%d%d", &n, &m); for (int i = 0; i < m; i++) {
int a, b; scanf("%d%d", &a, &b); a--; b--; addedge(a, b); addedge(b, a); } memset(vis, 0, sizeof(vis)); dfs(0); return 0; }

转载地址:http://acfsx.baihongyu.com/

你可能感兴趣的文章
王高飞:微博已收购一直播 明年一季度重点是功能与流量打通
查看>>
趣头条发行区间7至9美元 预计9月14日美国上市
查看>>
新北市长侯友宜:两岸交流应从隔壁最亲近的人开始
查看>>
全面屏的Nokia X即将上线,不到2000元的信仰你要充值吗?
查看>>
HTML5音频audio属性
查看>>
ES6学习
查看>>
Centos7搭建Django环境
查看>>
序列化一个Intent
查看>>
JavaScript数据类型及语言基础--ife
查看>>
进阶 Nginx 高手必须跨越的 5 座大山
查看>>
部署P2P升级的脚本
查看>>
jenkins--ant持续集成测试build文件脚本 测试报告
查看>>
ubuntu下安装libxml2
查看>>
nginx_lua_waf安装测试
查看>>
easyui 只刷新当前页面的数据 datagrid reload 方法
查看>>
58到家完成3亿美金A轮融资 阿里平安等投资
查看>>
Mysql-mmm高可用方案安装及配置
查看>>
【狂人小白】MyBatis.001 学习巴提斯!
查看>>
全面解析C#中参数传递
查看>>
修改注册表防止SYN淹没式攻击
查看>>