usaco snail trails(dfs)
来源:互联网 发布:车主采集软件 编辑:程序博客网 时间:2024/06/06 01:12
dfs啊,我还写了好长时间,一天不如一天。
/*ID:jinbo wuTASK: snailLANG:C++*/ #include<bits/stdc++.h>using namespace std;char a[150][150];int dir[4][2]={0,1,1,0,0,-1,-1,0};bool vis[150][150];int n,m;int dfs(int x,int y,int d){int dx=x+dir[d][0];int dy=y+dir[d][1];vis[x][y]=1;if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&vis[dx][dy]==1){ vis[x][y]=0; return 1; }else if(dx>n||dx<1||dy>n||dy<1||a[dx][dy]=='#'){int t=(d+1)%4;int tx=x+dir[t][0];int ty=y+dir[t][1];int tmp1=0;int tmp2=0;if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&!vis[tx][ty]&&a[tx][ty]!='#')tmp1=dfs(tx,ty,t);t=(d+3)%4;tx=x+dir[t][0];ty=y+dir[t][1];if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&!vis[tx][ty]&&a[tx][ty]!='#')tmp2=dfs(tx,ty,t);int ans=max(tmp1,tmp2);vis[x][y]=0;return ans+1; }int tmp=dfs(dx,dy,d);//开市就错在这里我先把vis=0后在dfs的明显不行。vis[x][y]=0;return 1+tmp; }int main(){freopen("snail.in","r",stdin);freopen("snail.out","w",stdout);cin>>n>>m;char c;int b;for(int i=0;i<m;i++){getchar();scanf("%c%d",&c,&b);a[b][c-'A'+1]='#';}int tmp1=dfs(1,1,0);int tmp2=dfs(1,1,1);cout<<max(tmp1,tmp2)<<endl; }
0 0
- usaco snail trails(dfs)
- usaco 5.2 Snail Trails(DFS)
- USACO 5.2 Snail Trails
- usaco 5.1.2 Snail Trails
- USACO Snail Trails 解题报告
- [DFS] 5.2.1 Snail Trails
- usaco training 5.2.1 Snail Trails 题解
- Snail Trails
- 【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- 【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- JZOJ1315.【USACO题库】5.2.1 Snail Trails蜗牛的旅行
- C++——【USACO 5.2.1】——Snail Trails
- USACO5.2.1 Snail Trails(snail)
- Section 5.2 Snail Trails
- [USACO5.2]Snail Trails
- 【题目】[USACO5.2]蜗牛的旅行Snail Trails
- USACO 2009 Feb Revamping Trails 道路翻新
- USACO 2009 Feb Gold 3.Revamping Trails
- springMVC框架(一)HelloWold
- 团体程序设计天梯赛-练习集-L2-012. 关于堆的判断(小顶堆)
- 【新东西】链接合集
- 关于atexit函数的使用以及权限t的设置与测试
- VR的Crop功能实现
- usaco snail trails(dfs)
- HTTP&Tomcat
- oracle常用命令-sqlplus、lsnrctl 、exp、imp
- UE4 通过动捕设备 实时 驱动 人体运动
- 线程资源释放 问题解决
- HDOJ 1710Binary Tree Traversals 二叉树的遍历
- LeetCode - 20. Valid Parentheses
- div中img有空白的处理
- 使用UMDH进行内心泄露分析