HDU 2821Pusher(DFS )
来源:互联网 发布:java c 效率 编辑:程序博客网 时间:2024/06/06 02:49
题意:是一个游戏,可以玩下,就很清楚了,给你有箱子的图,你现在选择一个初始位置,并确定推的方向序列,规则:你要和箱子至少有一个空格才可以推,每次是先拿掉一个箱子,再把剩余的箱子(如果还存在的话)推向下一格,选择一个方向后要一直沿着这个方向走到不能走为止。
#include<bits/stdc++.h>#define cl(a,b) memset(a,b,sizeof(a));#define LL long long#define out(x) cout<<x<<endl;using namespace std;const int maxn=30;const int inf=9999999;char tmp[maxn][maxn];int n,m;int a[maxn][maxn];int dir[][2]={{1,0},{0,1},{-1,0},{0,-1}};char dirr[]="DRUL";//对应dir的方向char path[maxn*105];//记录方向序列int allNum;//所有的箱子数bool pan(int x,int y){ if(x>=0&&x<n&&y>=0&&y<m)return true; return false;}bool dfs(int x,int y,int num){ if(num==allNum){ path[num]=0; return true; } for(int i=0;i<4;i++){ int xx=x+dir[i][0]; int yy=y+dir[i][1]; if(!pan(xx,yy)||a[xx][yy])continue;//判断从(x,y)这一方向出发是否合法,1.在图里,2.不能有箱子 while(pan(xx,yy)&&!a[xx][yy]){//沿着这个方向继续探测 xx+=dir[i][0]; yy+=dir[i][1]; } if(!pan(xx,yy))continue;//判断while结束的条件 int t=a[xx][yy]; a[xx+dir[i][0]][yy+dir[i][1]]+=t-1; path[num]=dirr[i]; a[xx][yy]=0; if(dfs(xx,yy,num+1))return true; a[xx+dir[i][0]][yy+dir[i][1]]-=t-1;//回溯把图复原 a[xx][yy]=t; } return false;}int main(){ while(~scanf("%d%d",&m,&n)){ allNum=0; for(int i=0;i<n;i++){ scanf("%s",tmp[i]); for(int j=0;j<m;j++){ if(tmp[i][j]>='a'&&tmp[i][j]<='z'){ allNum+=tmp[i][j]-'a'+1; a[i][j]=tmp[i][j]-'a'+1; } else { a[i][j]=0; } } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++)if(!a[i][j]&&dfs(i,j,0)){ printf("%d\n%d\n%s\n",i,j,path); goto A; } } A:; } return 0;}
0 0
- hdu 2821 Pusher (dfs)
- hdu 2821 Pusher(dfs)
- HDU 2821Pusher(DFS )
- DFS-hdu-2821-Pusher
- HDU-2821-Pusher(DFS)
- hdu 2821 Pusher DFS
- hdu 2821 Pusher (水dfs)
- 【搜索】 HDU 2821 Pusher DFS
- (HDU 2821)Pusher DFS + 在一个方向上可以移动多位
- HDU 2821 Pusher
- HDU 2821 Pusher
- HDU 2821 Pusher
- HDU 2821 Pusher
- HDU 2821--Pusher
- HDU 2821 Pusher
- hdu 2821 pusher 4.3.7
- hdu 2821 Pusher 附几组数据
- HDU2821 Pusher(DFS)
- 学习记录
- 素因子分解
- Java 8 种数据类型 字节大小,int 4个字节,boolean几个字节
- 快学Hibernate
- URAL 2046 The First Day at School(模拟)
- HDU 2821Pusher(DFS )
- 周赛-kiki's game
- hibernate与spring的配置参考
- poj3322 Bloxorz I(滚箱子游戏) 状压BFS
- Struts配置参考
- 【POJ3181】【Dollar Dayz】
- 周赛-The Number Off of FFF
- 黑马程序员——面向对象
- LeetCode146:LRU Cache