POJ2230题解
2024-10-01 07:14:12
题目来源
题目大意
求无向图从起点1開始从不同方向经过全部边的一条路径。输出随意一条。题解
把无向图的边拆成两条方向相反的有向边,做欧拉回路。
欧拉回路做法:
1、起点入栈。(回路的话起点能够是随意的)
2、扫描与起点相连的全部未被标记的边,对每条这种边都标记它,然后它的终点入栈,递归处理;
3、假设从某个结点出发没有未被标记的边,则把这个结点出栈,增加答案序列中;
4、反复以上步骤,直到栈空。
5、对无向图,倒序的答案序列是一条欧拉回路。有向图正序倒序均可。Code
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 10005, maxm = 100010, nil = 0;
int n, m;
int e, pnt[maxn], nxt[maxm], u[maxm], v[maxm];
bool f[maxm];
void add(int a, int b)
{
u[++e] = a; v[e] = b;
nxt[e] = pnt[a]; pnt[a] = e;
}
void init()
{
int a, b;
scanf("%d%d", &n, &m);
for(int i = 1; i <= m; ++i)
{
scanf("%d%d", &a, &b);
add(a, b);
add(b, a);
}
}
void dfs(int k)
{
for(int j = pnt[k]; j != nil; j = nxt[j])
{
if(!f[j])
{
f[j] = true;
dfs(v[j]);
}
}
printf("%d\n", k);
}
void work()
{
dfs(1);
}
int main()
{
init();
work();
return 0;
}
最新文章
- 分布式缓存技术memcached学习(二)——memcached基础命令
- SQLite - TRUNCATE TABLE
- 自定义Spring Security权限控制管理(实战篇)
- MVC中配置OutputCache的VaryByParam参数无效的问题
- css案例学习之父子块的margin
- C#:占位符的例子
- iOS越狱包 分类: ios相关 app相关 2015-06-10 10:53 152人阅读 评论(0) 收藏
- 724. Find Pivot Index
- 用Postman做自动化测试的功能
- Zookeeper的功能以及工作原理 (转自:http://www.cnblogs.com/felixzh/p/5869212.html)
- Swift中 @objc 使用介绍
- Determine YARN and MapReduce Memory Configuration Settings
- annotation的概念及其作用
- 阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除
- 微服务测试打桩/mock工具mountebank
- java基本语法三
- tikv性能参数调优
- 20170711xlVBA自定义分类汇总一例
- SWT开发工具
- react-native ListView 性能问题
热门文章
- selenium3 + python - select定位
- Django day08 多表操作 (三) 基于对象的跨表查询 基于双下划线的多表查询
- flash 遮住 div 解决办法
- 在.xls;*.xlsx类型文件的导入(可以导入多条数据)
- C# 不卡屏延时方法,延迟系统时间,但系统又能同时能执行其它任务
- OpenCV:OpenCV中的 parallel_for 和opencv parallel_for_
- mysql安装包下载地址
- Linux 中, 安装html转pdf工具:wkhtmltopdf
- 学习EXTJS6(3)基本概念
- 【ACM】hdu_zs2_1003_Problem C_201308031012