POJ 3278 经典BFS
进一步了解了bfs;
题意:给你n,然后用+,-,*三种运算使n变成k;
漏洞:在算出新的数字之后,一定要判边界,否则RE,而且在每一步后面都得加判断是否等于K,如果是即刻退出,否则WA,判这个的时候需要顺序;
不过不明白为什么bfs这两个顺序为啥结果不同
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define N 101000
using namespace std;
int d[],vis[];
int k,n;
int OK(int t)
{
if(t < || t > N)
return ;
return ;
}
int bfs()
{
queue<int> q;
q.push(n);
memset(d,,sizeof(d));
memset(vis,,sizeof(vis));
d[n] = ;
vis[n] = ;
int s;
while(!q.empty())
{
int t = q.front();
q.pop();
// if(s == k)///满足条件才能到这一条
// return d[s];
for(int i=; i<; i++)
{
if(i==) s = t + ;
if(i==) s = t - ;
if(i==) s = t * ;
if(OK(s)&&!vis[s])
{
vis[s] = ;
q.push(s);
d[s] = d[t] + ;
}
else
continue;
if(s == k)///满足条件才能到这一条,放在上边就错了,为啥啊
return d[s];
}
}
return -;
}
int main()
{
while(~scanf("%d%d",&n,&k))
{
if(n>=k)
cout<<n-k<<endl;
else
cout<<bfs()<<endl;
}
return ;
}
POJ 3278 经典BFS的更多相关文章
- poj 3278 简单BFS
题意:给定农夫和奶牛的初始位置,农夫可以当前位置+1.-1.*2三种移动方式,问最少需要多少分钟抓住奶牛 AC代码: #include<cstdio> #include<cstrin ...
- 【BFS】POJ 3278
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 ...
- catch that cow POJ 3278 搜索
catch that cow POJ 3278 搜索 题意 原题链接 john想要抓到那只牛,John和牛的位置在数轴上表示为n和k,john有三种移动方式:1. 向前移动一个单位,2. 向后移动一个 ...
- [ACM训练] 算法初级 之 搜索算法 之 广度优先算法BFS (POJ 3278+1426+3126+3087+3414)
BFS算法与树的层次遍历很像,具有明显的层次性,一般都是使用队列来实现的!!! 常用步骤: 1.设置访问标记int visited[N],要覆盖所有的可能访问数据个数,这里设置成int而不是bool, ...
- poj 3278 Catch That Cow (bfs)
题目:http://poj.org/problem?id=3278 题意: 给定两个整数n和k 通过 n+1或n-1 或n*2 这3种操作,使得n==k 输出最少的操作次数 #include<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)
题目链接:http://poj.org/problem?id=3278 Description Farmer John has been informed of the location of a f ...
随机推荐
- C类型
类型 32位 64位 char 1 1 short 2 2 int 4 4 long 4 8 指针 4 8 float 4 4 double 8 8 long 8 8 常用的基本 ...
- hdu----(4308)Saving Princess claire_(搜索)
Saving Princess claire_ Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- mvc伪静态<四> 伪静态后静态页面或者引用的css和图片失效
引用的css和图片失效的解决办法 把样式引用文件的相对路径改成绝对路径就可以了 比如原先的引用路径为:<link href="~/Content/css/style.css" ...
- POJ1780-Code(欧拉路径求解)
题目链接:poj1780-Code 题意:有个保险箱子是n位数字编码,当正确输入最后一位编码后就会打开(即输入任意多的数字只有最后n位数字有效)……要选择一个好的数字序列,最多只需按键10n+n-1次 ...
- SAP资产变动明细
*&---------------------------------------------------------------------* *& Report ZFIR027 * ...
- eclipse 中提示tomcat 的端口被占用了 后的最快捷解决方法
很多时候运行tomcat 的时候总是会提示tomcat 的端口被占用 但是任务管理器里面还找不到是哪个端口被占用了 因此很多人就重新配置tomcat 或者去修改tomcat的端口号 ,其实这么做太麻 ...
- matlab report generator
Programmatic report creation Create report content Mlreportgen.dom.Document.append Mlreportgen.dom.P ...
- js控制html文字提示语的出现和隐藏
有时我们需要在点击html输入框的时候,旁边会出现提示语.在输入字符的时候,输入框下边会出现输入了多少字符的提示. 请看下面实例. <!DOCTYPE html> <html> ...
- js使用正则表达式
参考慕课网示例: 使用js对html输入框内容进行校验: 1. 只能输入5-20个字符,必须以“字母”开头 2. 可以带“数字" “_” “.”的字串 <!DOCTYPE html P ...
- WDCP安装常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的方法
为有更好的性能,也为更简洁的系统,一些不是常用或不是基本的功能,都将做为可选的安装组件需要用到的就安装 注意:如果安装时遇到 ./configure: Permission denied提示,很有可能 ...