USACO Section 5.4 Betsy's Tour
来源:互联网 发布:js 订阅发布模式代码 编辑:程序博客网 时间:2024/06/06 13:14
题意:
n*n的迷宫 从左上角走到左下角 路过的房间不重复 问 一共几种走法
思路:
DFS+2个剪枝
1、通过度来剪枝 如果现在相邻的点度为1(与现在的点相连的边已经剪掉)那么一定要走它 如果有多个这种点 走遍屋子是不可能的
2、如果撞墙了 判断是否将屋子隔成了两半
代码:
/*ID: housera1PROG: betsyLANG: C++*/#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define N 10int vis[N][N],d[N][N],dir[4][2]={ {0,1},{1,0},{0,-1},{-1,0} };int n,ans;void dfs(int x,int y,int s){ int i,fx,fy,m,f; vis[x][y]=1; for(i=0,m=0;i<4;i++) { fx=x+dir[i][0]; fy=y+dir[i][1]; if(fx>=1&&fx<=n&&fy>=1&&fy<=n&&!vis[fx][fy]) { d[fx][fy]--; if(d[fx][fy]==1&&(fx!=n||fy!=1)) { m++; f=i; } } } if(m==1) { fx=x+dir[f][0]; fy=y+dir[f][1]; dfs(fx,fy,s-1); } else if(m==0) { for(i=0;i<4;i++) { fx=x+dir[i][0]; fy=y+dir[i][1]; if(fx>=1&&fx<=n&&fy>=1&&fy<=n) { if(fx==n&&fy==1) { if(!vis[fx][fy]&&s==1) ans++; } else if(!vis[fx][fy]) { if((fx==1||fx==n)&&fy!=1&&fy!=n&&!vis[fx][fy-1]&&!vis[fx][fy+1]); else if((fy==1||fy==n)&&fx!=1&&fx!=n&&!vis[fx-1][fy]&&!vis[fx+1][fy]); else dfs(fx,fy,s-1); } } } } for(i=0;i<4;i++) { fx=x+dir[i][0]; fy=y+dir[i][1]; if(fx>=1&&fx<=n&&fy>=1&&fy<=n&&!vis[fx][fy]) d[fx][fy]++; } vis[x][y]=0;}int main(){ int Debug=0; if(!Debug) { freopen("betsy.in","r",stdin); freopen("betsy.out","w",stdout); } scanf("%d",&n); if(n==1) { printf("1\n"); return 0; } ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i==1&&j==1||i==n&&j==n||i==1&&j==n||i==n&&j==1) d[i][j]=2; else if(i==1||j==1||i==n||j==n) d[i][j]=3; else d[i][j]=4; } } dfs(1,1,n*n-1); printf("%d\n",ans); return 0;}
0 0
- USACO Section 5.4 Betsy's Tour
- USACO Section 5.4 Betsy's Tour - 搜索剪枝
- usaco Betsy's Tour
- [usaco] 5.4.4 Betsy's Tour
- usaco 5.4 Betsy's Tour(插头DP一条回路)
- *usaco training 5.4.4 Betsy's Tour 题解
- ?|USACO 5.4.4|Betsy's Tour|漫游小镇|插头DP
- 【USACO题库】5.4.4 Betsy's Tour漫游小镇
- USACO Betsy's Tour 解题报告
- USACO 6.5.3 Betsy's Tour dfs
- Betsy's Tour
- USACO6.5.3 Betsy's Tour(betsy)
- USACO Section 5.4 Canada Tour
- USACO Section 5.4 Canada Tour - DP..
- usaco 5.4.1 Canada Tour
- USACO 5.4 Canada Tour dp
- USACO Section 1.4 Mother's Milk 搜索
- USACO section 1.4.4 Mother's Milk
- Android平台给PhoneGap添加Admob广告
- NYOJ588Money
- hdu_4746_莫比乌斯反演
- const用法(转自博客园)
- row cache lock事件
- USACO Section 5.4 Betsy's Tour
- c#连接mysql数据库时 找不到或无法加载已注册的 .Net Framework Data Provider
- How Tomcat works之 Host and Engine
- 蝉知门户系统迁移到SAE平台-install模块
- Android平台给cordova添加Admob广告
- Jsonp 跨域访问
- 数值换换为字符串(3)
- UVA 11825 - Hackers' Crackdown 状态压缩 dp 枚举子集
- uva 10306 e-Coins(二维完全背包)