题目链接

题解

一看题没什么思路。写了个暴力居然可过?!

Code

#include<bits/stdc++.h>
#define LL long long
#define RG register
using namespace std;
inline int gi() {
bool f = 0; char c = getchar();
RG int x = 0;
while (c!='-' && (c < '0' || c > '9')) c = getchar();
if (c == '-') f = 1, c = getchar();
while (c >= '0' && c <= '9') x = x*10+c-'0', c = getchar();
return f ? -x:x;
}
const int N = 210;
bool a[N][N], vis[N][N];
int mv[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}, ans; void dfs(int x, int y, int d, int z) {
int xx = x+mv[d][0], yy = y+mv[d][1];
if (vis[xx][yy]) {
ans = max(ans, z);
return ;
}
if (!a[xx][yy]) {
vis[xx][yy] = 1;
dfs(xx, yy, d, z+1);
vis[xx][yy] = 0;
}
else {
int dd = (d+1)%4;
bool flag = 0;
xx = x+mv[dd][0], yy = y+mv[dd][1];
if (!a[xx][yy] && !vis[xx][yy]) {
vis[xx][yy] = 1;
flag = 1, dfs(xx, yy, dd, z+1);
vis[xx][yy] = 0;
}
dd = (d+3)%4;
xx = x+mv[dd][0], yy = y+mv[dd][1];
if (!a[xx][yy] && !vis[xx][yy]) {
vis[xx][yy] = 1;
flag = 1, dfs(xx, yy, dd, z+1);
vis[xx][yy] = 0;
}
if (!flag) ans = max(ans, z);
}
return ;
} int main() {
int n = gi(), ss = gi(), x;
char s;
for (int i = 1; i <= ss; i++) {
cin >> s >> x;
a[x][s-'A'+1] = 1;
}
for (int i = 1; i <= n; i++)
a[0][i] = a[i][0] = a[n+1][i] = a[i][n+1] = 1;
/* for (int i = 0; i <= n+1; i++, printf("\n"))
for (int j = 0; j <= n+1; j++)
printf("%d ", a[i][j]);*/
vis[1][1] = 1;
dfs(1, 1, 0, 1);
dfs(1, 1, 1, 1);
printf("%d\n", ans);
return 0;
}

洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails的更多相关文章

  1. 洛谷——P1560 [USACO5.2]蜗牛的旅行Snail Trails

    P1560 [USACO5.2]蜗牛的旅行Snail Trails 题目描述 萨丽·斯内尔(Sally Snail,蜗牛)喜欢在N x N 的棋盘上闲逛(1 < n <= 120). 她总 ...

  2. 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails(不明原因的scanf错误)

    P1560 [USACO5.2]蜗牛的旅行Snail Trails 题目描述 萨丽·斯内尔(Sally Snail,蜗牛)喜欢在N x N 的棋盘上闲逛(1 < n <= 120). 她总 ...

  3. [USACO5.2]蜗牛的旅行Snail Trails(有条件的dfs)

    题目描述 萨丽·斯内尔(Sally Snail,蜗牛)喜欢在N x N 的棋盘上闲逛(1 < n <= 120). 她总是从棋盘的左上角出发.棋盘上有空的格子(用“.”来表示)和B 个路障 ...

  4. 洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication【最小割】分析+题解代码

    洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication[最小割]分析+题解代码 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流. ...

  5. 洛谷P1522 [USACO2.4]牛的旅行 Cow Tours

    洛谷P1522 [USACO2.4]牛的旅行 Cow Tours 题意: 给出一些牧区的坐标,以及一个用邻接矩阵表示的牧区之间图.如果两个牧区之间有路存在那么这条路的长度就是两个牧区之间的欧几里得距离 ...

  6. [洛谷P2747] [USACO5.4]周游加拿大Canada Tour

    洛谷题目链接:[USACO5.4]周游加拿大Canada Tour 题目描述 你赢得了一场航空公司举办的比赛,奖品是一张加拿大环游机票.旅行在这家航空公司开放的最西边的城市开始,然后一直自西向东旅行, ...

  7. [洛谷P2750] [USACO5.5]贰五语言Two Five

    洛谷题目链接:[USACO5.5]贰五语言Two Five 题目描述 有一种奇怪的语言叫做"贰五语言".它的每个单词都由A-Y这25个字母各一个组成.但是,并不是任何一种排列都是一 ...

  8. [洛谷P1709] [USACO5.5]隐藏口令Hidden Password

    洛谷题目链接:[USACO5.5]隐藏口令Hidden Password 题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N< ...

  9. [洛谷P2745] [USACO5.3]窗体面积Window Area

    洛谷题目链接:[USACO5.3]窗体面积Window Area 题目描述 你刚刚接手一项窗体界面工程.窗体界面还算简单,而且幸运的是,你不必显示实际的窗体.有 5 种基本操作: 创建一个新窗体 将窗 ...

随机推荐

  1. linux系统上部署一个web项目

    对于apache开源项目中tomcat的认识,大多停留在Windows下,这次我通过一个简单的实例来介绍一下在linux下如何搭建tomcat环境,并且部署一个web项目. 先从基本安装开始,可别小看 ...

  2. oracle 通过序列实现某字段自增

    -- 创建表 create table items( id int primary key, name ) not null, price int not null, detail ), pic ), ...

  3. C++ 重载操作符- 01 简单的入门

    重载操作符的定义 这篇博客是对 重载操作符 的一个概要性的介绍. 重载操作符是C++语言的高级功能,当我们写一个类的时候,可以根据需要学一个重载操作符,如果 不需要,我们可以不写. 大量的操作符都可以 ...

  4. Hyperledger Fabric系统架构

  5. 多线程编程为什么要sleep

    以前在分析程序的时候就遇到很多sleep,当时很觉得很奇怪?不直到为什么要调用这个sleep,现在明白了,这种情况一般是应用程序有多个线程,那怎么手动切换线程呢?调用sleep即可.

  6. 数字图像处理实验(10):PROJECT 05-01 [Multiple Uses],Noise Generators 标签: 图像处理MATLAB 2017-05-26 23:36

    实验要求: Objective: To know how to generate noise images with different probability density functions ( ...

  7. Detailed ASP.NET MVC Pipeline

    Posted By : Shailendra Chauhan, 27 Jan 2014 P.NET MVC is an open source framework built on the top o ...

  8. jQuery bind() live()

    <script type="text/javascript"> $(document).ready(function () { /*$('.clickme').live ...

  9. Win7下:编译器错误信息: CS0016

    解决办法: 原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下: 来到C:/Windows目录,修改temp文件夹的属性. 在安全页设置IIS-IUSRS的权限,赋予修改.读取.写入等权 ...

  10. windows service使用log4net 记录日志

    最近写了个定时邮件推送的服务,当利用lognet4记录日志时,发现日志并没有记录.后来明白windows 服务一般默认是在C:\Windows\System 或是C:\Windows\System32 ...