P6207 [USACO06OCT] Cows on Skates G
题目描述
本题使用 Special Judge。
Farmer John 把农场划分为了一个 rr 行 cc 列的矩阵,并发现奶牛们无法通过其中一些区域。此刻,Bessie 位于坐标为 (1,1)(1,1) 的区域,并想到坐标为 (r,c)(r,c) 的牛棚享用晚餐。她知道,以她所在的区域为起点,每次移动至相邻的四个区域之一,总有一些路径可以到达牛棚。
这样的路径可能有无数种,请你输出任意一种,并保证所需移动次数不超过 100000100000。
输入格式
第一行两个整数 r,cr,c。
接下来 rr 行,每行 cc 个字符,表示 Bessie 能否通过相应位置的区域。字符只可能是 .
或 *
。
.
表示 Bessie 可以通过该区域。*
表示 Bessie 无法通过该区域。
输出格式
若干行,每行包含两个用空格隔开的整数,表示 Bessie 依次通过的区域的坐标。
显然,输出的第一行是 1 1
,最后一行是 r c
。
相邻的两个坐标所表示的区域必须相邻。
输入输出样例
输入 #1复制
5 8 ..*...** *.*.*.** *...*... *.*.*.*. ....*.*.
输出 #1复制
1 1 1 2 2 2 3 2 3 3 3 4 2 4 1 4 1 5 1 6 2 6 3 6 3 7 3 8 4 8 5 8
说明/提示
【数据范围】
对于 100\%100% 的数据,1\le r\le 1131≤r≤113,1\le c\le 771≤c≤77。
思路
先读入(一句废话),在bfs里,找到所有最短路径x和y的前驱,最后用递归法输出
代码
#include<bits/stdc++.h>
using namespace std;
char mat[10001][10001];
int n, m, vis[10001][10001];
int qianqu[10001][10001][2];//前驱,拼音认得吧
struct node {int x, y,ans;//x坐标,y坐标和ans(虽然自己也不知道为什么要)
};
bool good(int x, int y) {if (x >= 0 && x < n && y >= 0 && y < m && !vis[x][y] && mat[x][y] == '.') {return true;}return false;
}//不越界并且没标记过,mat为'.'
int dx[4]={0,-1,0,1};
int dy[4]={1,0,-1,0};//四个方向
int qx, qy, zx, zy;
void bfs(){queue<node> q;vis[qx][qy]=1;q.push({qx,qy,0});qianqu[qx][qy][0]=qx;qianqu[qx][qy][1]=qy;while(!q.empty()){node t=q.front();int x0=t.x;int y0=t.y;int a0=t.ans+1;q.pop();if(x0==zx&&y0==zy){return;}//到终点了 for(int i=0;i<4;i++){int nx=x0+dx[i];int ny=y0+dy[i];if(good(nx,ny)){//联通 q.push({nx,ny,a0});vis[nx][ny]=1;qianqu[nx][ny][0]=x0;qianqu[nx][ny][1]=y0;//记录前驱 }}}
}
void print(int x,int y){int nx=qianqu[x][y][0];int ny=qianqu[x][y][1];if(nx!=x||ny!=y){print(nx,ny);}printf("%d %d",x+1,y+1);//因为一开始i和j是0,所以最后要加一(简直是废话) cout<<endl;//递归输出法
}
int main() {cin >> n >> m;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> mat[i][j];}}//读入(又是废话) zx=n-1;zy=m-1;qx=0;qy=0;bfs();print(zx,zy);
}
希望各位兹瓷^-^
P6207 [USACO06OCT] Cows on Skates G相关推荐
- 搜索练习2(P6207 [USACO06OCT] Cows on Skates G)
P6207 [USACO06OCT] Cows on Skates G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem ...
- bzoj 1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛(BFS)
1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛 Time Limit: 1 Sec Memory Limit: 64 MBSec Special Judge S ...
- BFS【bzoj1667】: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛
1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛 Description 经过跟Farmer John长达数年的谈判,奶牛们终于如愿以偿地得到了想要的旱冰鞋.农场上大 ...
- 【BZOJ】1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛
Description 经过跟Farmer John长达数年的谈判,奶牛们终于如愿以偿地得到了想要的旱冰鞋.农场上大部分的区域都很平整,适合在上面滑动,但有一些小块的土地上有很多的岩石,凭奶牛们的旱冰 ...
- Milk Measurement
Milk Measurement 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Each of Farmer John's cows initially produces G gallo ...
- 文件上传之伪Ajax方式上传
From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...
- United Cows of Farmer John G
题目链接:United Cows of Farmer John G 我们考虑枚举每个右端点. 然后前面合法的左端点是哪些呢?假设当前位置为 R,上一次出现位置为L,如果未出现当成0 那么我们对于一些出 ...
- P2858 [USACO06FEB]Treats for the Cows G/S 题解
emmmmmm,第二篇文章,多多写文章,好好掌握知识! 前言 原本在educoder上刷题,刷到[粉刷匠]一题,使用区间DP来做的.自己之前曾经小部分刷过背包DP的题目,对于区间DP还是知之甚少.在稍 ...
- P2881 [USACO07MAR]Ranking the Cows G
P2881 [USACO07MAR]Ranking the Cows G 题目描述 输出格式 Line 1: A single integer that is the minimum value of ...
- 解题报告:luoguP2868 Sightseeing Cows G(最优比率环,负环判定,二分答案)
根据题意,我们要环上各点权值之和除以各边权值之和最大. 求最大答案,很明显可以使用二分答案.那么我们假设当前答案为 x,如果有更大的答案,那么方程就可以按下图转换: 也就是说如果有更大的答案,则有一个 ...
最新文章
- 文件内存映射mmap解决大文件快速读写问题和进程间共享内存
- mysql文件查看工具_OpenDBViewer
- vue之axios 登陆验证及数据获取
- 前端学习(3321):瀑布流的方式演示
- 网络爬虫-获取网页中的数据加伪装头,伪装成浏览器多次访问,避免单次访问导致ip被封
- 京东数据产品专家分享“如何转行数据产品经理​?”
- 几个多字节和UNICODE及UTF-8之间相互转化的函数
- 大数据之-Hadoop之HDFS_hadoop集群中的安全模式_原理---大数据之hadoop工作笔记0074
- python必背100源代码-学会这个Python库,至少能减少100行代码
- SQL面试题--(26~46)
- Tensorflow源码编译
- 〖Python 数据库开发实战 - MySQL篇㉕〗- 数据更新操作 - UPDATE 语句
- 天基实业怎样投资理财收益稳定
- win10安装winpcap4.13
- 互联网晚报 | 5月19日 星期四 | 腾讯起诉vivo不正当竞争;市监局将立案调查妇炎洁问题广告;天津高考调整至6月12日举行...
- Unity+高通Vuforia SDK——AR
- 惠普打印机如何调整条码的宽度
- python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件
- 洛谷——P1413 坚果保龄球
- DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter学习
热门文章
- DirectSound学习(二)--流式缓冲区
- 为什么传统的验证码不再安全
- 【LLS-Player】webrtc m94下载
- Result的类型分析和总结
- win7台式计算机型号怎么查,教您电脑主板型号怎么看
- 计算机兆的符号是什么意思,一兆等于多少kb流量?B,MB,KB,GB分别是什么意思?
- cipher 加密解密
- 一篇博客收能收录计算机网络?
- 【数据仓库】企业Spark案例--酒店数据分析实战
- Error in driver during machine creation: Machine didn‘t return an IP after 120 seconds, aborting