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;
}

  

转载于:https://www.cnblogs.com/modengdubai/p/4856603.html

usaco Snail Trails相关推荐

  1. usaco snail trails(dfs)

    dfs啊,我还写了好长时间,一天不如一天. /* ID:jinbo wu TASK: snail LANG:C++ */ #include<bits/stdc++.h> using nam ...

  2. [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails

    Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并 ...

  3. BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution

    标题效果:一个N积分m无向图边.它可以是路径k右边缘值变0,确定此时1-n最短路径长度. Sol:我以为我们考虑分层图,图复制k+1部分,每间0~k一层.代表在这个时候已经过去"自由边缘&q ...

  4. usaco Shaping Regions

    这就是usaco 前面的windows area的变形. /* ID:jinbo wu TASK:rect1 LANG:C++ */ #include<iostream> #include ...

  5. usaco Postal Vans(dp)

    是哈密顿回路,然后...就不知道怎么写了 ,以前写过类似的不过情况没这么多也没这么复 usaco training 6.1.1 Postal Vans 题解 标签: usaco training题解d ...

  6. usaco Beef McNuggets

    这两天贼烦,ccf炸了,还有一个烦心事.哎我都不知道自己能不能坚持下去了.马上期末考了.这段时间还是抓紧时间复习吧同时刷usaco的节奏要跟以前一样了,毕竟课少了. 题解: 只要你知道以下的数论结论, ...

  7. usaco前两章小结

    usaco 暑假老师有推荐做但是那个题目太长了,而且·大部分都是废话做起来特别慢,而且当时自己基本上什么都不懂,太难了所以看了题解做了两题就放弃了. 转眼就上学了,因为想学习acm所以就胡乱找题做但是 ...

  8. usaco ★Fractions to Decimals 分数化小数

    ★Fractions to Decimals 分数化小数 写一个程序,输入一个形如 N/D 的分数(N 是分子,D 是分母),输出它的小数形式. 如果小数有循环节的话,把循环节放在一对圆括号中.例如, ...

  9. usaco ★Bessie Come Home 回家

    ★Bessie Come Home 回家 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有 ...

最新文章

  1. 多数编程语言里的0.1+0.2≠0.3?
  2. vim 插件_Vim自动生成tags插件vim-gutentag使用方法
  3. Win10如何显示系统托盘所有图标
  4. PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树、结点到根结点的距离、树形dp、记忆化搜索
  5. WPF combox二级联动
  6. iOS使用UIBezierPath实现ProgressView
  7. MySql与SqlServer的一些常用用法的差别
  8. 安全研究员警告:特斯拉 Backup Gateway 联网存在多种安全风险
  9. 论文赏析[AI18]更快的基于非二叉化自底向上策略的转移系统成分句法分析
  10. PHP 中 json_encode中文处理、urlencode方法、post中文乱码
  11. java poi excel模板变量_Java Web之POI操作Excel2016模板
  12. 解决“npm不是内部或外部命令“
  13. matlab加载xls文件报错,服务器出现意外情况,远程过程调用失败
  14. 企业核心-不是技术而是人才
  15. JAVA通过poi实现excel表格制作并且将图片放入到指定的单元格中(可以循环插入)
  16. java 内存很高_Java服务器内存和CPU占用过高的原因
  17. 2021年京东618活动攻略大全
  18. Dalvik smali语法
  19. 不理解栈和队列?知道子弹上膛和火车穿隧道就好
  20. 改造industrial_robot_simulator给joint_states的velocity赋值,便于测试轨迹规划的速度平滑性

热门文章

  1. Incomedia WebSite X5 17中文版
  2. 【资源】各种基础入门教程附下载地址
  3. Linux centosVMware shell中的函数、shell中的数组、
  4. maven私服nexus搭建(windows)
  5. 多进程多线程GDB调试 (转)
  6. GUI菜单——菜单条、菜单、子条目之间关系
  7. 关于动态创建控件性能提高 以及 SuspendLayout ResumeLayout 的使用
  8. 关于嵌套循环的循环初始化语句问题:
  9. 深圳惠程澄清与奇虎360公司重组传闻
  10. 在SpringMVC中使用Jackson并格式化时间