usaco Snail Trails
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相关推荐
- usaco snail trails(dfs)
dfs啊,我还写了好长时间,一天不如一天. /* ID:jinbo wu TASK: snail LANG:C++ */ #include<bits/stdc++.h> using nam ...
- [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails
Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并 ...
- BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution
标题效果:一个N积分m无向图边.它可以是路径k右边缘值变0,确定此时1-n最短路径长度. Sol:我以为我们考虑分层图,图复制k+1部分,每间0~k一层.代表在这个时候已经过去"自由边缘&q ...
- usaco Shaping Regions
这就是usaco 前面的windows area的变形. /* ID:jinbo wu TASK:rect1 LANG:C++ */ #include<iostream> #include ...
- usaco Postal Vans(dp)
是哈密顿回路,然后...就不知道怎么写了 ,以前写过类似的不过情况没这么多也没这么复 usaco training 6.1.1 Postal Vans 题解 标签: usaco training题解d ...
- usaco Beef McNuggets
这两天贼烦,ccf炸了,还有一个烦心事.哎我都不知道自己能不能坚持下去了.马上期末考了.这段时间还是抓紧时间复习吧同时刷usaco的节奏要跟以前一样了,毕竟课少了. 题解: 只要你知道以下的数论结论, ...
- usaco前两章小结
usaco 暑假老师有推荐做但是那个题目太长了,而且·大部分都是废话做起来特别慢,而且当时自己基本上什么都不懂,太难了所以看了题解做了两题就放弃了. 转眼就上学了,因为想学习acm所以就胡乱找题做但是 ...
- usaco ★Fractions to Decimals 分数化小数
★Fractions to Decimals 分数化小数 写一个程序,输入一个形如 N/D 的分数(N 是分子,D 是分母),输出它的小数形式. 如果小数有循环节的话,把循环节放在一对圆括号中.例如, ...
- usaco ★Bessie Come Home 回家
★Bessie Come Home 回家 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有 ...
最新文章
- 多数编程语言里的0.1+0.2≠0.3?
- vim 插件_Vim自动生成tags插件vim-gutentag使用方法
- Win10如何显示系统托盘所有图标
- PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树、结点到根结点的距离、树形dp、记忆化搜索
- WPF combox二级联动
- iOS使用UIBezierPath实现ProgressView
- MySql与SqlServer的一些常用用法的差别
- 安全研究员警告:特斯拉 Backup Gateway 联网存在多种安全风险
- 论文赏析[AI18]更快的基于非二叉化自底向上策略的转移系统成分句法分析
- PHP 中 json_encode中文处理、urlencode方法、post中文乱码
- java poi excel模板变量_Java Web之POI操作Excel2016模板
- 解决“npm不是内部或外部命令“
- matlab加载xls文件报错,服务器出现意外情况,远程过程调用失败
- 企业核心-不是技术而是人才
- JAVA通过poi实现excel表格制作并且将图片放入到指定的单元格中(可以循环插入)
- java 内存很高_Java服务器内存和CPU占用过高的原因
- 2021年京东618活动攻略大全
- Dalvik smali语法
- 不理解栈和队列?知道子弹上膛和火车穿隧道就好
- 改造industrial_robot_simulator给joint_states的velocity赋值,便于测试轨迹规划的速度平滑性