题目描述

本题使用 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相关推荐

  1. 搜索练习2(P6207 [USACO06OCT] Cows on Skates G)

    P6207 [USACO06OCT] Cows on Skates G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem ...

  2. 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 ...

  3. BFS【bzoj1667】: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛

    1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛 Description 经过跟Farmer John长达数年的谈判,奶牛们终于如愿以偿地得到了想要的旱冰鞋.农场上大 ...

  4. 【BZOJ】1667: [Usaco2006 Oct]Cows on Skates滑旱冰的奶牛

    Description 经过跟Farmer John长达数年的谈判,奶牛们终于如愿以偿地得到了想要的旱冰鞋.农场上大部分的区域都很平整,适合在上面滑动,但有一些小块的土地上有很多的岩石,凭奶牛们的旱冰 ...

  5. Milk Measurement

    Milk Measurement 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Each of Farmer John's cows initially produces G gallo ...

  6. 文件上传之伪Ajax方式上传

    From: <由 Windows Internet Explorer 8 保存> Subject: =?gb2312?B?zsS8/snPtKvWrs6xQWpheLe9yr3Jz7SrI ...

  7. United Cows of Farmer John G

    题目链接:United Cows of Farmer John G 我们考虑枚举每个右端点. 然后前面合法的左端点是哪些呢?假设当前位置为 R,上一次出现位置为L,如果未出现当成0 那么我们对于一些出 ...

  8. P2858 [USACO06FEB]Treats for the Cows G/S 题解

    emmmmmm,第二篇文章,多多写文章,好好掌握知识! 前言 原本在educoder上刷题,刷到[粉刷匠]一题,使用区间DP来做的.自己之前曾经小部分刷过背包DP的题目,对于区间DP还是知之甚少.在稍 ...

  9. P2881 [USACO07MAR]Ranking the Cows G

    P2881 [USACO07MAR]Ranking the Cows G 题目描述 输出格式 Line 1: A single integer that is the minimum value of ...

  10. 解题报告:luoguP2868 Sightseeing Cows G(最优比率环,负环判定,二分答案)

    根据题意,我们要环上各点权值之和除以各边权值之和最大. 求最大答案,很明显可以使用二分答案.那么我们假设当前答案为 x,如果有更大的答案,那么方程就可以按下图转换: 也就是说如果有更大的答案,则有一个 ...

最新文章

  1. 文件内存映射mmap解决大文件快速读写问题和进程间共享内存
  2. mysql文件查看工具_OpenDBViewer
  3. vue之axios 登陆验证及数据获取
  4. 前端学习(3321):瀑布流的方式演示
  5. 网络爬虫-获取网页中的数据加伪装头,伪装成浏览器多次访问,避免单次访问导致ip被封
  6. 京东数据产品专家分享“如何转行数据产品经理​?”
  7. 几个多字节和UNICODE及UTF-8之间相互转化的函数
  8. 大数据之-Hadoop之HDFS_hadoop集群中的安全模式_原理---大数据之hadoop工作笔记0074
  9. python必背100源代码-学会这个Python库,至少能减少100行代码
  10. SQL面试题--(26~46)
  11. Tensorflow源码编译
  12. 〖Python 数据库开发实战 - MySQL篇㉕〗- 数据更新操作 - UPDATE 语句
  13. 天基实业怎样投资理财收益稳定
  14. win10安装winpcap4.13
  15. 互联网晚报 | 5月19日 星期四 | 腾讯起诉vivo不正当竞争;市监局将立案调查妇炎洁问题广告;天津高考调整至6月12日举行...
  16. Unity+高通Vuforia SDK——AR
  17. 惠普打印机如何调整条码的宽度
  18. python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件
  19. 洛谷——P1413 坚果保龄球
  20. DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter学习

热门文章

  1. DirectSound学习(二)--流式缓冲区
  2. 为什么传统的验证码不再安全
  3. 【LLS-Player】webrtc m94下载
  4. Result的类型分析和总结
  5. win7台式计算机型号怎么查,教您电脑主板型号怎么看
  6. 计算机兆的符号是什么意思,一兆等于多少kb流量?B,MB,KB,GB分别是什么意思?
  7. cipher 加密解密
  8. 一篇博客收能收录计算机网络?
  9. 【数据仓库】企业Spark案例--酒店数据分析实战
  10. Error in driver during machine creation: Machine didn‘t return an IP after 120 seconds, aborting