Gym 100518E Embedding Caterpillars
2015-09-08 17:34
267 查看
构造+DFS
很容易的可以构造两个,最后一个不会构造的话 DFS一下就可以了
很容易的可以构造两个,最后一个不会构造的话 DFS一下就可以了
#include<iostream> #include<string> #include<string.h> #include<stdio.h> #include<queue> #include<iomanip> #include<algorithm> #include<map> using namespace std; int n; int G[205][205]; int flag[205]; int ans[205]; int TOT,FF; void dfs(int now) { if(now==2*n+1) { for(int i=1; i<=2*n; i++) printf("%d ",ans[i]); FF=1; return; } if(now==1) { for(int i=1; i<=2*n; i++) { if(!flag[i]) { flag[i]=1; ans[now]=i; dfs(now+1); if(FF) return; flag[i]=0; } } } else if(now>=2&&now<=n+1) { for(int i=1; i<=2*n; i++) { if(!flag[i]&&!G[i][ans[now-1]]) { flag[i]=1; ans[now]=i; dfs(now+1); if(FF) return; flag[i]=0; } } } else if(now>=n+2&&now<=2*n) { for(int i=1; i<=2*n; i++) { if(!flag[i]&&!G[i][ans[now-n]]) { flag[i]=1; ans[now]=i; dfs(now+1); if(FF) return; flag[i]=0; } } } } int main( ) { freopen("embedding.in","r",stdin); freopen("embedding.out","w",stdout); while(~scanf("%d",&n)) { if(n==0) break; TOT=1; for(int i=1; i<=2*n; i++) ans[TOT]=i,TOT++; TOT--; for(int i=1; i<=TOT; i++) printf("%d ",ans[i]); printf("\n"); for(int i=1; i<=n; i++) G[ans[i]][ans[i+1]]=1,G[ans[i+1]][ans[i]]=1; for(int i=2; i<=n; i++) G[ans[i]][ans[i+n]]=1,G[ans[i+n]][ans[i]]=1; TOT=1; ans[TOT]=1; TOT++; for(int i=n+2; i<=2*n; i++) ans[TOT]=i,TOT++; ans[TOT]=n+1; TOT++; ans[TOT]=n; TOT++; for(int i=2; i<=n-1; i++) ans[TOT]=i,TOT++; TOT--; for(int i=1; i<=TOT; i++) printf("%d ",ans[i]); printf("\n"); for(int i=1; i<=n; i++) G[ans[i]][ans[i+1]]=1,G[ans[i+1]][ans[i]]=1; for(int i=2; i<=n; i++) G[ans[i]][ans[i+n]]=1,G[ans[i+n]][ans[i]]=1; FF=0; memset(flag,0,sizeof flag); dfs(1); } return 0; }
相关文章推荐
- [leetcode]sort list
- ThinkPHP3.2.3 使用常量BUILD_CONTROLLER_LIST无法生成Controller
- 【面试算法系列】已知二叉树的前序和中序遍历重建二叉树 - C语言实现
- Yii Framework 开发教程(3) 为应用添加日志
- 第2周项目2--程序的多文件组织
- f:facet标签 的用法
- RCNN的安装与简单使用
- java中方法重载和重写
- 确定public继承出来的是Is_a关系(Effective C++_32)
- poj 2763 Housewife Wind 边权的树链剖分
- iOS触摸事件学习
- RPC(Remote Procedure Call Protocol)
- 谷歌浏览器下小于12px字体的解决办法
- ApplicationContext
- Android中Context的理解与使用技巧
- mark 20150908
- Android客户端与服务器端通过DES加密认证
- Launcher 主菜单界面手机休眠后打开已经回到了待机界面
- leetcode--Find Minimum in Rotated Sorted Array II ---C++
- guibin