【USACO题库】5.2.1 Snail Trails蜗牛的旅行
题目描述:
A B C D E F G H
1 S . . . . . # .
2 . . . . # . . .
3 . . . . . . . .
4 . . . . . . . .
5 . . . . . # . .
6 # . . . . . . .
7 . . . . . . . .
8 . . . . . . . .
一旦萨丽选定了一个方向,她就会一直走下去。如果她遇到棋盘边缘或者路障,她就停下来,并且转过 90 度。她不可能离开棋盘,或者走进路障当中。并且,萨丽从不跨过她已经经过的格子。当她再也不能走的时候,她就停止散步。
这里是上面的棋盘上的一次散步路线图示:
A B C D E F G H
1 S---------+ # .
2 . . . . # | . .
3 . . . . . | . .
4 . . . . . +---+
5 . . . . . # . |
6 # . . . . . . |
7 +-----------+ |
8 +-------------+
萨丽向右走,再向下,向右,向下,然后向左,再向上,最后向右走。这时她遇到了一个她已经走过的格子,她就停下来了。但是,如果她在 F5 格遇到路障后选择另外一条路——向我们看来是左边的方向转弯,情况就不一样了。
你的任务是计算并输出,如果萨丽聪明地选择她的路线的话,她所能够经过的最多格子数。
INPUT FORMAT
输入的第一行包括 N ——棋盘的大小,和 B ——路障的数量(1 <= B <= 200)。接下来的 B 行包含着路障的位置信息。下面的样例输入对应着上面的示例棋盘。下面的输出文件表示问题的解答。注意,当 N 〉26 时,输入文件就不能表示 Z 列以后的路障了。
SAMPLE INPUT (file snail.in)
OUTPUT FORMAT
输出文件应该只由一行组成,即萨丽能够经过的最多格子数。
SAMPLE OUTPUT (file snail.out)
33
constdx:array[1..4] of Longint=(1,0,-1,0);dy:array[1..4] of Longint=(0,1,0,-1);
vars:string;flag:boolean;a:Array[0..120,0..120] of Longint;n,m,i,j,max,w,sum:longint;
procedure dfs(x,y,tot:Longint);
vari,xx,yy,xs,ys:longint;
beginif (tot>max) then max:=tot;for i:=1 to 4 doif (a[x+dx[i],y+dy[i]]=0) and (x+dx[i]<=n) and (x+dx[i]>0) and (y+dy[i]<=n) and (y+dy[i]>0) thenbeginxx:=x; yy:=y;flag:=true;w:=tot;while (a[xx+Dx[i],yy+dy[i]]=0) and (xx+dx[i]<=n) and (xx+dx[i]>0) and (yy+dy[i]<=n) and (yy+dy[i]>0) dobegina[xx,yy]:=2;inc(xx,dx[i]); inc(yy,dy[i]);inc(w);if a[xx+dx[i],yy+dy[i]]=2 thenbeginif w>max then max:=w;while (xx<>x) or (yy<>y) dobegina[xx,yy]:=0;dec(xx,dx[i]); dec(yy,dy[i]);end;a[xx,yy]:=0;flag:=false;break;end;end;if flag=false then continue;a[xx,yy]:=2;dfs(xx,yy,w);xs:=x; ys:=y;while (xs<>xx) or (ys<>yy) dobegina[xs,ys]:=0;inc(xs,dx[i]); inc(ys,dy[i]);end;a[xs,ys]:=0;end;
end;beginreadln(n,m);for i:=1 to m dobeginreadln(s);sum:=0;for j:=2 to length(s) dosum:=sum*10+ord(s[j])-48;a[sum,ord(s[1])-64]:=1;end;dfs(1,1,0);writeln(max+1);
end.
【USACO题库】5.2.1 Snail Trails蜗牛的旅行相关推荐
- 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队 题解
[USACO题库]3.4.4 Raucous Rockers"破锣摇滚"乐队 题解 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...
- 【USACO题库】1.2.1 Milking Cows挤牛奶
一开始认为过不了,后来交就AC了. 1007. [USACO题库]1.2.1 Milking Cows挤牛奶 (File IO): input:milk.in output:milk.out 题目描述 ...
- 【USACO题库】1.4.2 The Clocks时钟.TJ
标题的简介: [USACO题库]1.4.2 The Clocks--Tj https://jzoj.net/junior/#contest/show/1232/11(下文题目描述还是原地址清楚) 考虑 ...
- 最简单的USACO,没有之一:【USACO题库】1.3.4 Prime Cryptarithm牛式
欢迎收看: 保障电脑安全 拒绝编译错误 DEV-C++题解 今天来看一个炒鸡简单的USACO,没有之一. 题目描述 下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫 ...
- 【USACO题库】 动态规划 汇总(普及-/普及)
数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...
- 【USACO题库】3.2.4 Feed Ratios饲料调配
这一题,有许多的细节要注意一下!特别是循环中的判断!先看一下代码: #include<cstdio> using namespace std; int a[4][4]; int main( ...
- 【USACO题库】1.5.4 Checker Challenge跳棋的挑战
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子. 列号 1 2 3 4 5 6 --------- ...
- 【图论】【最短路】【SPFA】【USACO题库】2.4.4 Bessie Come Home回家(jzoj 1274)
Bessie Come Home回家 题目大意: 有n条路连接着一些牧场,每个牧场由'a-z'(没羊)和'A-Y'(有一头羊),问哪个有羊的牧场离'Z'最近 INPUT FORMAT 第 1 行: 整 ...
- 【USACO题库】3.2.3 Spinning Wheels纺车的轮子
题目描述 一架纺车有五个纺轮(也就是五个同心圆),这五个不透明的轮子边缘上都有一些缺口.这些缺口必须被迅速而准确地排列好.每个轮子都有一个起始标记(在0度),这样所有的轮子都可以在统一的已知位 ...
- 【USACO题库】1.1.4 Broken Necklace破碎的项链
题目描述: 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=35000),珠子是随意安排的. 这里是 n=29 的二个例子: 1 2 1 2r b b r b r r b ...
最新文章
- 服务器群安装系统,服务器安装总结
- 今日最佳:你爸爸给你取名的时候。。。
- 传智播客软件测试第一期_播客:冒险如何推动一位软件工程师的职业发展
- python opencv把32位的灰度图变成8位的灰度图_python简单换脸程序
- 【mmdetection】mmdetection数据处理pipline结果可视化
- 下单延迟10s撤单性能测试
- Zabbix添加网络设备
- Javascript中常用的经典技巧
- 《鬼谷子》决篇第十一(翻译)
- 手机远程服务器总说磁盘空间不足,查询远程服务器上磁盘空间的最佳方式
- Windows/Linux 下启动Kafka,外带安装包
- 大三,在软件工程学习上的感悟
- Ubuntu+OpenCV学习汉字点阵,图片打印汉字
- 计算机用户名显示TEMP,Windows 下Temp帐号处理
- python字典操作首字母与星期的对应_python:第五章 字典与集合作业
- Canvas 画五角星
- mysql全备和指定库和表备份,mysql日志的分类简介和作用, mysql加速跳过域名解析,mysql权限授予与收回,数据库实用篇~~Tring
- MongoDB数据迁移之迁移工具Kettle
- linux scp控制带宽,Linux系统中安装使用Trickle来控制用户带宽
- 使用微信小程序获取附近人的位置遇到的坑