noi.openjudge——2971 抓住那头牛
- http://noi.openjudge.cn/ch0205/2971/
- 总时间限制:
- 2000ms
- 内存限制:
- 65536kB
- 描述
-
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:
1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛? - 输入
- 两个整数,N和K
- 输出
- 一个整数,农夫抓到牛所要花费的最小分钟数
- 样例输入
-
5 17
- 样例输出
-
4 BFS
#include <iostream> #define maxn 100000 using namespace std; int s,t,head,tail; bool vis[maxn+]; struct node
{
int now,val;
}que[maxn+]; int main()
{
cin>>s>>t;
que[tail].now=s;
que[tail++].val=;
vis[s]=;
while(head<tail)
{
int now=que[head].now,val=que[head].val;
if(now==t)
{
cout<<val;
return ;
}
if(!vis[now*]&&now*<=maxn&&now)
{
que[tail].now=now*;
que[tail++].val=val+;
vis[now*]=;
}
if(!vis[now+]&&now+<=maxn&&now<t)
{
que[tail].now=now+;
que[tail++].val=val+;
vis[now+]=; }
if(!vis[now-]&&now>)
{
que[tail].now=now-;
que[tail++].val=val+;
vis[now-]=;
}
head++;
}
return ;
}无限ER
#include<iostream>
#include<cstdio>
#include<cstdlib> using namespace std; int n,k;
int b[]; struct sop
{
int sum;
int step;
}queue[]; void bfs(int n,int k)
{
int head=;
int tail=;
queue[tail].sum=n;
queue[tail].step=;
b[n]=;
while(head<tail)
{
head++;
if(queue[head].sum==k)
{
cout<<queue[head].step;
return;
}
if(!b[queue[head].sum*]&&(queue[head].sum*<=)&&(queue[head].sum!=))
{
tail++;
queue[tail].sum=queue[head].sum*;
b[queue[head].sum*]=;
queue[tail].step=queue[head].step+;
}
if(!b[queue[head].sum+]&&(queue[head].sum+<=)&&(queue[head].sum+<=k))
{
tail++;
queue[tail].sum=queue[head].sum+;
b[queue[head].sum+]=;
queue[tail].step=queue[head].step+;
}
if(!b[queue[head].sum-]&&(queue[head].sum->=))
{
tail++;
queue[tail].sum=queue[head].sum-;
b[queue[head].sum-]=;
queue[tail].step=queue[head].step+;
}
}
return ;
} int main()
{
cin>>n>>k; bfs(n,k);
return ;
}AC题解
noi.openjudge——2971 抓住那头牛的更多相关文章
- OpenJudge 2971 抓住那头牛
总时间限制: 2000ms 内存限制: 65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0< ...
- noi 2971 抓住那头牛
2971:抓住那头牛 查看 提交 统计 提问 总时间限制: 2000ms 内存限制: 65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N ...
- OpenJudge 4001:抓住那头牛
题目链接 题解: 这个题可以用广搜来解决,从农夫到牛的走法每次都有三种选择,定义一个队列,把农夫的节点加进队列,然后以这三种走法找牛,队列先进先出,按顺序直到找到牛的位置. 代码: #include& ...
- 【bfs】抓住那头牛
[题目] 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次 ...
- [poj3278]抓住那头牛
题目描述 Farmer John has been informed of the location of a fugitive cow and wants to catch her immediat ...
- POJ-3278 抓住这头牛
广搜解决. 广搜搜出最短路,直接输出返回就行了. 每个点只搜一次,而且界限进行一次判断. else 语句里面不要用if else if,这样的话就直走一条路了. #include <ios ...
- 双向广搜 codevs 3060 抓住那头奶牛
codevs 3060 抓住那头奶牛 USACO 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 农夫约翰被告知一头逃跑奶牛 ...
- BZOJ1646: [Usaco2007 Open]Catch That Cow 抓住那只牛
1646: [Usaco2007 Open]Catch That Cow 抓住那只牛 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 634 Solved ...
- 2014.6.14模拟赛【bzoj1646】[Usaco2007 Open]Catch That Cow 抓住那只牛
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
随机推荐
- Maven远程中央仓库地址
阿里云 - http://maven.aliyun.com/nexus/content/groups/public/ Apache Snapshots - https://repository.apa ...
- 在 CentOS 7上安装并配置 Python 3.6 环境
前言 按照此方法安装保证以下报错什么的统统都没有! 基础环境 系统:centos7.4 软件:python3 Retrying (Retry(total=0, connect=None, read=N ...
- sort与sorted的区别
描述 我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序 : 方法1.用对List的成员函数sort进行排序 方法2.用内置函数sorte ...
- 如何自学编程,零基础适合学习Java或者Web前端吗,非科班的能学java吗?
很多人都会选择自学Java或者前端,相信有在校的大学生,有正在上班想转行的,也有已经在自学的.下面通过几个问题我来给大家分析学习编程的难易程度. 编程是什么? 通俗的理解,编程就是编写程序,哪什么是程 ...
- zb的生日-------搜索 和 动态规划
简单的贪心算法 : http://love-oriented.com/pack/P01.html 说实话 我是喜欢 动态规划的.......但是省赛迫在眉睫 , 只好先 学 搜索了 , 赶紧 ...
- [转]Linux命令之iconv
转自:http://lorna8023.blog.51cto.com/777608/420313 用途说明 iconv命令是用来转换文件的编码方式的(Convert encoding of given ...
- ios的认识
刚进了ios兴趣班,第一次使用苹果电脑,因为苹果电脑和windows电脑使用的区别很大.所以老师教我们苹果电脑的基本使用,以及关于苹果产品的一些认识.我听得热血沸腾,对苹果开发越来越感兴趣,相信下次上 ...
- mysql中的各种concat
引用:http://www.cnblogs.com/appleat/archive/2012/09/03/2669033.html 一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一 ...
- python认识标识符
#python标识符 Python在编程的时候,起的名字就叫做标识符,其中变量和常量就是标识符的一种 #命名原则 在python中标识符的命名是有规则的,按正确命名规则命名的可以使用的标示符叫做有效标 ...
- Json——转义符
C#后台直接输出Json字符串需要反斜杠“\” context.Response.Write("[{\"Name\": \"wqx\", \" ...