POJ 3278 Catch That Cow(求助大佬)
| Time Limit: 2000MS | Memory Limit: 65536K | |
| Total Submissions: 109702 | Accepted: 34255 |
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Output
Sample Input
5 17
Sample Output
4
Hint
Source
void bfs(){
while(!que.empty()) que.pop();
nond tmp;tmp.pos=x;tmp.step=;
vis[x]=;que.push(tmp);
while(!que.empty()){
nond now=que.front();
que.pop();nond a,b,c;
c.pos=now.pos+;c.step=now.step+;if(now.pos<=y&&!vis[c.pos]) que.push(c),vis[c.pos]=;
if(c.pos==y){ printf("%d\n",c.step);return ; }
a.pos=now.pos-;a.step=now.step+;if(now.pos>=&&!vis[a.pos]) que.push(a),vis[a.pos]=;
if(a.pos==y){ printf("%d\n",a.step);return ; }
b.pos=now.pos*;b.step=now.step+;if(now.pos<=y&&!vis[b.pos]) que.push(b),vis[b.pos]=;
if(b.pos==y){ printf("%d\n",b.step);return ; }
}
}
像上面那样写就不行,改成下面这样就AC了。
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int x,y;
int vis[];
struct nond{ int pos,step; };
queue<nond>que;
void bfs(){
while(!que.empty()) que.pop();
nond tmp;tmp.pos=x;tmp.step=;
vis[x]=;que.push(tmp);
while(!que.empty()){
nond now=que.front();
que.pop();nond a,b,c;
if(now.pos==y){ printf("%d\n",now.step);return ; }
c.pos=now.pos+;c.step=now.step+;if(now.pos<=y&&!vis[c.pos]) que.push(c),vis[c.pos]=;
a.pos=now.pos-;a.step=now.step+;if(now.pos>=&&!vis[a.pos]) que.push(a),vis[a.pos]=;
b.pos=now.pos*;b.step=now.step+;if(now.pos<=y&&!vis[b.pos]) que.push(b),vis[b.pos]=;
}
}
int main(){
while(scanf("%d%d",&x,&y)!=EOF){
memset(vis,,sizeof(vis));
bfs();
}
}
POJ 3278 Catch That Cow(求助大佬)的更多相关文章
- BFS POJ 3278 Catch That Cow
题目传送门 /* BFS简单题:考虑x-1,x+1,x*2三种情况,bfs队列练练手 */ #include <cstdio> #include <iostream> #inc ...
- POJ 3278 Catch That Cow(赶牛行动)
POJ 3278 Catch That Cow(赶牛行动) Time Limit: 1000MS Memory Limit: 65536K Description - 题目描述 Farmer J ...
- POJ 3278 Catch That Cow (附有Runtime Error和Wrong Answer的常见原因)
题目链接:http://poj.org/problem?id=3278 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total S ...
- POJ 3278 Catch That Cow(BFS,板子题)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 88732 Accepted: 27795 ...
- POJ 3278 Catch That Cow[BFS+队列+剪枝]
第一篇博客,格式惨不忍睹.首先感谢一下鼓励我写博客的大佬@Titordong其次就是感谢一群大佬激励我不断前行@Chunibyo@Tiancfq因为室友tanty强烈要求出现,附上他的名字. Catc ...
- POJ 3278 Catch That Cow(bfs)
传送门 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 80273 Accepted: 25 ...
- poj 3278:Catch That Cow(简单一维广搜)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 45648 Accepted: 14310 ...
- poj 3278 Catch That Cow (bfs搜索)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 46715 Accepted: 14673 ...
- poj 3278 catch that cow BFS(基础水)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 61826 Accepted: 19329 ...
随机推荐
- [App Store Connect帮助]二、 添加、编辑和删除用户(6)生成 API 密钥
如果已批准您访问 App Store Connect API,您可以生成 API 密钥,以便使用该密钥配置.认证和使用 App Store Connect 服务. 有关管理和保护您密钥的更多信息,请参 ...
- Oracle group by分组拼接字符串
select wm_concat(id),depon from test_1 group by depon
- Java 编译与反编译
编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language)分为低级语言(Low-level Lang ...
- Windows和Centos下Docker的安装配置
Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...
- longpo的回文
啊...比赛的时候输入打错了,结束之后还照着题解把DP部分重构了一遍然而还是WA...样例都没过,然后直接输了-1 明显的DP...而且数据范围这么小,显然怎么搞都可以... 而且这样的回文的DP是很 ...
- $P3931 SAC E一道难题 Tree$
problem #include <bits/stdc++.h> #define rep(i,j,n) for(register int i=j;i<=n;i++) #define ...
- vagrant使用centos的环境安装..
vagrant这货挺好用的..简要就是, 下好virtualbox, vagrant, 然后下个你需要的box. 然后vagrant box add boxname boxpath就行. 然后在合适的 ...
- 【Codeforces576E_CF576E】Painting Edges(可撤销并查集+线段树分治)
题目 CF576E 分析: 从前天早上肝到明天早上qwq其实颓了一上午MC ,自己瞎yy然后1A,写篇博客庆祝一下. 首先做这题之前推荐一道很相似的题:[BZOJ4025]二分图(可撤销并查集+线段树 ...
- C# 文件操作【转】
本文也收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...
- .net framework 3.5 安装报错 0x800F0954问题
windows Server 2019 .net framework 3.5 安装报错 0x800F0954问题 .net framework 3.5的安装教程:但是安装出现0x800F0954这个错 ...