bzoj 1632: [Usaco2007 Feb]Lilypad Pond【bfs】
直接bfs,在过程中更新方案数即可
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int N=55,inf=1e9,dx[]={1,1,-1,-1,2,2,-2,-2},dy[]={2,-2,2,-2,1,-1,1,-1};
int n,m,a[N][N],b[N][N],dis[N][N];
long long f[N][N];
bool v[N][N];
struct qwe
{int x,y;qwe(int X=0,int Y=0){x=X,y=Y;}
}s,t;
queue<qwe>q;
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);b[i][j]=dis[i][j]=inf;if(a[i][j]==3)s=qwe(i,j);if(a[i][j]==4)t=qwe(i,j);}q.push(s);v[s.x][s.y]=1;b[s.x][s.y]=dis[s.x][s.y]=0;f[s.x][s.y]=1;while(!q.empty()){qwe u=q.front();q.pop();v[u.x][u.y]=0;for(int k=0;k<8;k++){int x=u.x+dx[k],y=u.y+dy[k];if(x<1||y<1||x>n||y>m||a[x][y]==2)continue;int nw=b[u.x][u.y]+(a[x][y]==0);if(nw<b[x][y]){b[x][y]=nw;dis[x][y]=dis[u.x][u.y]+1;f[x][y]=f[u.x][u.y];if(!v[x][y]){v[x][y]=1;q.push(qwe(x,y));}}else if(nw==b[x][y]){if(dis[u.x][u.y]+1<dis[x][y]){dis[x][y]=dis[u.x][u.y]+1;f[x][y]=f[u.x][u.y];if(!v[x][y]){v[x][y]=1;q.push(qwe(x,y));}}else if(dis[u.x][u.y]+1==dis[x][y]){f[x][y]+=f[u.x][u.y];if(!v[x][y]){v[x][y]=1;q.push(qwe(x,y));}}}}}if(b[t.x][t.y]==inf)puts("-1");else printf("%d\n%d\n%lld\n",b[t.x][t.y],dis[t.x][t.y],f[t.x][t.y]);return 0;
}
转载于:https://www.cnblogs.com/lokiii/p/9570655.html
bzoj 1632: [Usaco2007 Feb]Lilypad Pond【bfs】相关推荐
- bzoj 1632: [Usaco2007 Feb]Lilypad Pond(BFS)
1632: [Usaco2007 Feb]Lilypad Pond Time Limit: 5 Sec Memory Limit: 64 MB Submit: 688 Solved: 230 [S ...
- bzoj 1698: [Usaco2007 Feb]Lilypad Pond 荷叶池塘(BFS)
1698: [Usaco2007 Feb]Lilypad Pond 荷叶池塘 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 550 Solved: 1 ...
- Problem : [usaco2007 Feb]Lilypad Pond
Problem : [usaco2007 Feb]Lilypad Pond Description Farmer John 建造了一个美丽的池塘,用于让他的牛们审美和锻炼. 这个长方形的池子被分割成了 ...
- BZOJ 1631: [Usaco2007 Feb]Cow Party【最短路】
1631: [Usaco2007 Feb]Cow Party [题目描述] 传送门 题解 正向建边,从X开始刷一趟SPFA,然后反向建边,从X刷一趟SPFA,最后两次的答案加和就可以了. 代码如下 # ...
- 【BFS】魔板(c++基础算法)
本专栏上一篇:[BFS]八数码问题(c++基础算法) 目录 一.读题 ①题面 ②题意 三.做题 ①算法原理 ②算法实现 Ⅰ三种基本操作 Ⅱ操作序列 Ⅲ输出 Ⅳ一个特殊情况 四.AC代码 最后 一.读题 ...
- POJ 3414 Pots【BFS】+ Python
原题链接: 3414 -- Pots 参考资料:POJ 3414 - Pots | 眈眈探求 POJ 3414 Pots[BFS][图搜] - it610.com 一 特别注意: 1. 每一种操作对应 ...
- bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍
1696: [Usaco2007 Feb]Building A New Barn新牛舍 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 481 Solv ...
- bzoj 1697: [Usaco2007 Feb]Cow Sorting牛排序(置换)
1697: [Usaco2007 Feb]Cow Sorting牛排序 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 706 Solved: 413 ...
- poj 3268 bzoj 1631: [Usaco2007 Feb]Cow Party(最短路)
1631: [Usaco2007 Feb]Cow Party Time Limit: 5 Sec Memory Limit: 64 MB Submit: 855 Solved: 613 [Subm ...
最新文章
- 动作分析 姿态估计_关于大片人物特效少不了的人体姿态估计,这里有一份综述文章...
- HTTP协议之post multipart/form-data数据类型实例
- Docker环境运行Vue项目
- java中输入char类型_java中如何输入char类型
- 不得了了!Python 又爆出重大 Bug!
- 工作中的小技巧(一)
- labview 远程连接linux,SSH交互式通信总结:expect、plink、putty、sshpass、ALAB SSH
- C# 3.0入门系列(三)
- Node.js HTTP
- 那些年使用Android studio遇到的问题
- 程序员如何写好技术文档?建议收藏
- oracle数据库表的一些基本处理
- docker镜像 私有创库、端口映射以及 数据卷的创建
- 教程-ftp21端口,OpenSSH,22,内部敏感服务对外开放存在风险
- 北京汉正天成科技有限公司大家听说过没?这家公司怎么样?
- 一寸光阴一寸金,寸金难买寸光阴、时间就是生命,浪费时间就是慢性自杀。
- 电脑重装系统蓝屏详细解决方法分享
- Unity3D灯光与渲染学习之(一):天空盒、灯光以及色彩空间
- 塑料壳上下扣合的卡扣设计_读书笔记-塑胶外壳卡扣设计
- 在线支付功能-含银联在线和支付宝
热门文章
- Libvirsh 问题:GLib-WARNING **: gmem.c:483: custom memory allocation vtable not supported
- 同一个局域网,不同网段的远程控制
- XP系统和Sever2003系统现实定时开关机
- 《自己动手写开发工具》试读版电子书及光盘
- Cambridge center for digital innovation at judge business school
- 比较简单的在线图像编辑软件:觉得还行
- ubuntu下远程控制LinuxWindow桌面
- 数据结构【图】—022邻接矩阵的深度和广度遍历
- 代码创建 WPF 旋转动画
- MongoDB Hot Backup 测试及痛点