题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4392

题目大意:

一个图,要将每条边恰好遍历两遍,而且要以不同的方向,还要回到原点。

dfs解法                   借鉴于->大佬博客

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define arrsize 10001
int n, m; typedef struct edge
{
int end; //代表该边的终点
bool vis;
}; vector<edge>arr[arrsize]; //arrsize代表的是起点 void dfs(int cur)
{
for (int i = ; i < arr[cur].size(); i++)
{
if (!arr[cur][i].vis)
{
arr[cur][i].vis = true;
dfs(arr[cur][i].end); //因为只需要输出一条路径,所以不需要给dfs增加回溯功能 即不需要在下一行加上arr[cur][i].vis = false;
}
}
cout << cur << endl; //这里有一点疑问,如果每次都是输出每一条边的起点,那按理来说应该不能输出最后的那个1啊??
} int main()
{
int i, j;
while (cin >> n >> m)
{
for (i = ; i < m; i++)
{
edge temp;
int a, b;
cin >> a >> b;
temp.end = b; //构造两点之间的无向通路
temp.vis = false;
arr[a].push_back(temp);
temp.end = a;
temp.vis = false;
arr[b].push_back(temp);
}
dfs();
for (i = ; i <= n; i++)arr[i].clear(); //清空每一个顶点对应的有向边,即清除所有的边,防止对下一组数据造成影响
}
return ;
}

2018-04-06

poj2230 Watchcow【欧拉回路】【输出路径】(遍历所有边的两个方向)的更多相关文章

  1. Watchcow(POJ2230+双向欧拉回路+打印路径)

    题目链接:http://poj.org/problem?id=2230 题目: 题意:给你m条路径,求一条路径使得从1出发最后回到1,并满足每条路径都恰好被沿着正反两个方向经过一次. 思路:由于可以回 ...

  2. POJ2230 Watchcow【欧拉回路】

    Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 6172Accepted: 2663 Special Judge ...

  3. HDU 1385 Minimum Transport Cost (最短路,并输出路径)

    题意:给你n个城市,一些城市之间会有一些道路,有边权.并且每个城市都会有一些费用. 然后你一些起点和终点,问你从起点到终点最少需要多少路途. 除了起点和终点,最短路的图中的每个城市的费用都要加上. 思 ...

  4. PTA 7-33 地下迷宫探索(深搜输出路径)

    地道战是在抗日战争时期,在华北平原上抗日军民利用地道打击日本侵略者的作战方式.地道网是房连房.街连街.村连村的地下工事,如下图所示. 我们在回顾前辈们艰苦卓绝的战争生活的同时,真心钦佩他们的聪明才智. ...

  5. Catenyms POJ - 2337(单词+字典序输出路径)

    题意: 就是给出几个单词 看能否组成欧拉回路或路径  当然还是让输出组成的最小字典序的路 解析: 还是把首尾字母看成点   把单词看成边 记录边就好了 这题让我对fleury输出最小字典序又加深了一些 ...

  6. Floyd算法并输出路径

    hdu1224 Free DIY Tour Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  7. LA 2957 最大流,最短时间,输出路径

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=1 ...

  8. 5 X 5 方阵引出的寻路算法 之 路径遍历(完结)

      此篇文章源自对一个有趣问题的思考,在我的另一篇博文<一个有趣的 5 X 5 方阵一笔画问题>中有详细介绍.在已知其结论的情况下,作为程序员的我,还是想利用该问题当做出发点,写一个可以遍 ...

  9. VS 工程的 输出路径和工作路径的区别

    输出路径,是vs编译项目生成可执行文件的路径:工作路径是环境变量,比如我们在程序中写相对路径,就是以这个路径为基础的.在默认情况下,输出路径和工作路径都不写的话,默认是程序的bin下面的debug或者 ...

随机推荐

  1. redis实现消息队列&发布/订阅模式使用

    在项目中用到了redis作为缓存,再学习了ActiveMq之后想着用redis实现简单的消息队列,下面做记录.   Redis的列表类型键可以用来实现队列,并且支持阻塞式读取,可以很容易的实现一个高性 ...

  2. JS结合a标签的使用

    a标签可以当作按钮使用,也可以当作连接. <a href=javascript:test(5)>弹出5</a>    会直接调用JS函数(注意中间没引号) <a href ...

  3. 对numpy中shape的理解

    from:http://blog.csdn.net/by_study/article/details/67633593 环境:Windows, Python3.5 一维情况: >>> ...

  4. RPC原理

    RPC同步调用流程:(异步另说) 1)服务消费方(Client)以本地的调用方式调用远程服务. 2)客户端代理(Client Stub)接收到调用后负责将方法.参数等组装成能够进行网络传输的消息体. ...

  5. 【shell】查找后拷贝find . -name *.csv -exec cp {} /home/ \;

    Find命令的一般形式为: find pathname -options [-print -exec -ok] 让我们来看看该命令的参数: pathname: find命令所查找的目录路径.例如用.来 ...

  6. Python3学习笔记13-函数的参数

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数, 以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了 ...

  7. RMAN-06059(转)

    change archivelog all crosscheck;

  8. springmvc和mybatis整合关键配置

    springmvc+mybaits的系统架构: 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口. 使用mapper的扫描器自动扫描mapper接口在spr ...

  9. Expm 4_2 有向无环图中的最短路径问题

    [问题描述] 建立一个从源点S到终点E的有向无环图,设计一个动态规划算法求出从S到E的最短路径值,并输出相应的最短路径. 解: package org.xiu68.exp.exp4; import j ...

  10. 解决maven编译Java中的使用了未经检查或不安全的操作

    eclipse编译器找到右侧黄色点击可以定位到对应代码块位置 解决方法:鼠标悬浮在上方点击add即可 @SuppressWarnings("unchecked");给出的解决方案 ...