usaco Snail Trails
2015-10-06 01:11
441 查看
N没有给数据范围是这题最恶心的地方,因为这个wa了有点恶心。
/* ID: modengd1 PROG: snail LANG: C++ */ #include <iostream> #include <stdio.h> #include <memory.h> using namespace std; char Map[200][200]; bool vis[200][200]; int N,M; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int ans; void DFS(int x,int y,int dir,int step) { ans=max(ans,step); if(x+dx[dir]<0||x+dx[dir]>=N||y+dy[dir]<0||y+dy[dir]>=N||Map[x+dx[dir]][y+dy[dir]]=='#') { int d=(dir+1)%4; if(!(x+dx[d]<0||x+dx[d]>=N||y+dy[d]<0||y+dy[d]>=N||Map[x+dx[d]][y+dy[d]]=='#'||vis[x+dx[d]][y+dy[d]])) { vis[x+dx[d]][y+dy[d]]=true; DFS(x+dx[d],y+dy[d],d,step+1); vis[x+dx[d]][y+dy[d]]=false; } d=(4+dir-1)%4; if(!(x+dx[d]<0||x+dx[d]>=N||y+dy[d]<0||y+dy[d]>=N||Map[x+dx[d]][y+dy[d]]=='#'||vis[x+dx[d]][y+dy[d]])) { vis[x+dx[d]][y+dy[d]]=true; DFS(x+dx[d],y+dy[d],d,step+1); vis[x+dx[d]][y+dy[d]]=false; } } else if(!vis[x+dx[dir]][y+dy[dir]]) { vis[x+dx[dir]][y+dy[dir]]=true; DFS(x+dx[dir],y+dy[dir],dir,step+1); vis[x+dx[dir]][y+dy[dir]]=false; } } int main() { freopen("snail.in","r",stdin); freopen("snail.out","w",stdout); char y; int x; memset(vis,false,sizeof(vis)); scanf("%d%d",&N,&M); getchar(); for(int i=0;i<M;i++) { scanf("%c%d",&y,&x); Map[x-1][y-'A']='#'; getchar(); } ans=0; DFS(0,0,0,1); memset(vis,false,sizeof(vis)); DFS(0,0,1,1); cout<<ans<<endl; return 0; }
相关文章推荐
- 《ZHU, MAI, SHAO: SINGLE IMAGE DEHAZING USING COLOR ATTENUATION PRIOR》关于此文的理解与实现
- hdoj 1022 Train Problem I
- [codeforces 582b]Once Again…
- 11 Container With Most Water
- 有关人工智能
- Codeforces Round #323 D Once Again...
- 二进制“<<”: 没有找到接受“const std::basic_string<char,std::char_traits<char>,std::allocator<char>>”类型的右操作数的运算
- DLLMain函数
- autofac获取全局Container
- main函数中两个参数的用法
- 2014 Asia Shanghai Regional Contest H
- Raid管理详解
- 【static&extern,有心得】staitc在C中,修饰函数.(让我明白了,在include该文件后,则该文件的static也可见了)
- 2014 Asia Shanghai Regional Contest J
- 矩阵快速幂 CodeForces - 582B Once Again...
- codeforces 583B B. Once Again...(dp)
- HDU 4810 Wall Painting(组合数学)
- LightOJ 1282 Leading and Trailing
- Codeforces Round #323 (Div. 1) B. Once Again... 最长非严格递增子序列
- 搭建hibernate时 'hibernate.dialect' must be set when no Connection available错误