BZOJ-3033 太鼓达人
2015-05-05 15:34
323 查看
欧拉回路。
把每个数当作一个节点,能首尾相连的就连接一条有向边。
然后从起点跑一遍就行。
把每个数当作一个节点,能首尾相连的就连接一条有向边。
然后从起点跑一遍就行。
#include <cstdio> #include <algorithm> #include <iostream> #include <cctype> #include <queue> #include <cstring> using namespace std; #define rep(i, l, r) for(int i=l; i<=r; i++) #define down(i, l, r) for(int i=l; i>=r; i--) #define travel(x) for(edge *p=fir[x]; p; p=p->n) #define maxn 12345 #define maxm 123456 #define inf 0x7fffffff #define clr(x, c) memset(x, c, sizeof(x)) inline int read() { int x=0; char ch=getchar(); while (!isdigit(ch)) ch=getchar(); while (isdigit(ch)) { x=x*10+ch-'0'; ch=getchar(); } return x; } int n=read(), m=1, top, s[maxn]; bool b[maxn]; bool dfs(int x) { s[++top]=x; b[x]=1; if (top==m) return true; if (!b[(x*2)%m] && dfs((x*2)%m)) return true; if (!b[(x*2)%m+1] && dfs((x*2)%m+1)) return true; --top; b[x]=0; return false; } int main() { rep(i, 1, n) m*=2; printf("%d ", m); dfs(0); m/=2; rep(i, 1, top) printf("%d", s[i]/m); }
相关文章推荐
- [BZOJ3033]太鼓达人|欧拉图
- [BZOJ3033]太鼓达人(欧拉图+dfs)
- bzoj 3033: 太鼓达人 欧拉图+dfs
- 【bzoj3033】太鼓达人 DFS欧拉图
- bzoj 3033: 太鼓达人 [欧拉回路]
- 【BZOJ3033】太鼓达人 暴力+欧拉回路
- BZOJ 3033 太鼓达人(DFS+欧拉回路)
- bzoj 3033: 太鼓达人 (欧拉图+dfs)
- 3033: 太鼓达人
- 3033: 太鼓达人
- 【BZOJ-3033】太鼓达人 欧拉图 + 暴搜
- 大暴搜 [BZOJ3303] 太鼓达人
- 3033: 太鼓达人 欧拉图+暴力
- BZOJ [JLOI2010]冠军调查
- bzoj1370 [Baltic2003]Gang团伙
- bzoj2938——AhoCorasickAutoMata
- bzoj1597 土地购买
- 【BZOJ4519】【Sdoi2016】游戏 线段树
- 【BZOJ】1213 [HNOI2004]高精度开根
- BZOJ3223 文艺平衡树