HDU 2821 DFS
来源:互联网 发布:mmd威风堂堂动作数据 编辑:程序博客网 时间:2024/05/17 22:40
//// main.cpp// HDU 2821 DFS//// Created by 郑喆君 on 8/12/14.// Copyright (c) 2014 itcast. All rights reserved.//#include<cstdio>#include<cstring>#include<iostream>#include<iomanip>#include<queue>#include<cmath>#include<stack>#include<map>#include<vector>#include<set>#include<algorithm>using namespace std;typedef long long LL;const int int_max = 0x07777777;const int int_min = 0x80000000;int mymap[30][30];int dir[4][2] = {-1,0,0,1,1,0,0,-1};int n,m,tot,flag;vector<int> ret;void dfs (int x, int y, int cur){ if(cur==tot){ flag = 1; return; } for(int i = 0; i < 4 && flag==0; i++){ int temp[30][30]; memcpy(temp, mymap, sizeof(mymap)); int j = 1; while (flag==0) { int xx = x + dir[i][0]*j; int yy = y + dir[i][1]*j; if(xx>=0 && xx<n && yy>=0 && yy<m){ if(mymap[xx][yy]){ if(j > 1){ int xxx = xx + dir[i][0]; int yyy = yy + dir[i][1]; if(xxx>=0 && xxx<n && yyy>=0 && yyy<m){ mymap[xxx][yyy] = mymap[xx][yy]-1+mymap[xxx][yyy]; mymap[xx][yy] = 0; ret.push_back(i); dfs(xx, yy, cur+1); if (flag) break; ret.erase(ret.begin()+ret.size()-1); }else{ int tt = mymap[xx][yy]; mymap[xx][yy] = 0; ret.push_back(i); dfs(xx, yy, cur+tt); if(flag) break; ret.erase(ret.begin()+ret.size()-1); } } break; } }else { break; } j++; } memcpy(mymap, temp, sizeof(mymap)); } }int main(int argc, const char * argv[]){ while (scanf("%d %d", &m, &n)!=EOF) { memset(mymap, 0, sizeof(mymap)); tot = 0; flag = 0; for(int i = 0; i < n; i++){ char cs[30]; scanf("%s", cs); for(int j = 0; j < m; j++){ if(cs[j]!='.'){ mymap[i][j] = cs[j]-'a'+1; tot += mymap[i][j]; } } } ret.clear(); int reti = 0, retj = 0; for(int i = 0; i < n&&flag==0; i++){ for(int j = 0; j < m&&flag==0; j++){ if(mymap[i][j]) continue; dfs(i,j,0); if(flag==1){ reti = i; retj = j; } } } cout << reti << endl; cout << retj << endl; for(int i = 0; i < ret.size(); i++){ if(ret[i]==0) printf("U"); if(ret[i]==1) printf("R"); if(ret[i]==2) printf("D"); if(ret[i]==3) printf("L"); } cout << endl; }}
0 0
- hdu 2821 dfs
- hdu 2821 DFS
- DFS-hdu-2821-Pusher
- hdu 2821(dfs)
- HDU-2821-Pusher(DFS)
- HDU 2821 DFS
- HDU 2821 DFS
- hdu 2821 Pusher DFS
- hdu 2821 Pusher (dfs)
- hdu 2821 Pusher(dfs)
- hdu 2821 Pusher (水dfs)
- 【搜索】 HDU 2821 Pusher DFS
- HDU 2821Pusher(DFS )
- HDU DFS
- 【DFS】HDU
- HDU DFS
- HDU-2610 && HDU-2610 (dfs)
- HDU 1864 (DFS)
- 多线程断点下载
- 学习OpenGL(一)一个简单的实例
- MYSQL用法(八) 索引失效的各种情况小结
- 类与对象
- 有向图强连通分量tarjan算法学习笔记
- HDU 2821 DFS
- fd_set具体是怎样实现的
- 深度解析Java 8:JDK1.8 AbstractQueuedSynchronizer的实现分析(上)
- HDU-2437-Jerboas(BFS+优先队列)
- 如何设计极简风格的网站?
- C++中const的使用方法
- HDU-4940-Destroy Transportation system
- JSF 文档参考
- Spring中ClassPathXmlApplicationContext类的简单使用