hiho 51 欧拉路·三
2016-04-28 21:54
381 查看
问题
http://hihocoder.com/problemset/problem/1182?sid=784688解法
构造有向图,每条边表示0~2n−1 中的一个数,则求有向图的欧拉回路。使用Fleury算法 后path倒序输出才是结果。
#include <bits/stdc++.h> using namespace std; enum{maxn = 1<<15}; int G[maxn][2]; bool visit[maxn][2]; int path[maxn]; int pathNum; int n; void buildG() { int m = 1<<(n-1); for (int i=0; i<m; ++i) { G[i][0] = (i<<1|0) & (m-1); G[i][1] = (i<<1|1) & (m-1); } } void dfs(int u) { for (int i=0; i<2; ++i) { if (!visit[u][i]) { int v = G[u][i]; visit[u][i] = true; dfs(v); } } path[pathNum++] = u; } int main() { memset(visit, 0, sizeof(visit)); scanf("%d", &n); buildG(); pathNum =0; dfs(0); for (int i=pathNum-2; i>=0; --i) { printf("%c", path[i]&0x01? '1':'0'); } printf("\n"); return 0; }
相关文章推荐
- Android gradle proguard 代码混淆详解
- linux 到windows平台c++工程移植(持续更新)
- 如何卸载Windows 10 内置的App
- android保持屏幕常亮
- POJ 1230 Pass-Muraille
- 使用Android Studio 进行NDK开发和调试
- springmvc(2)--参数绑定
- springmvc(1)--配置
- Java IO的操作
- 软件架构的典型组成部分-安全性
- mxnet深度学习(Symbol)
- Tango学习笔记(1)
- 使用pyinstaller发布pyqt4程序
- SiteWhere用户使用手册
- Objective-C:利用typedef为Block进行重命名
- ZOJ 3940 Modulo Query(优先队列)
- 什么是https?
- maven 学习---使用Maven运行单元测试
- EF Code First学习笔记 初识Code First
- Xcode 报错 error