如何用长尾词提问解决openjudge 2971:抓住那头牛问题?

2026-04-18 17:192阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计933个文字,预计阅读时间需要4分钟。

如何用长尾词提问解决openjudge 2971:抓住那头牛问题?

本文主要讲述了OpenJudge 2971:抓住那头牛的解题过程。如有需要,可向朋友咨询,希望能对你有所帮助。

问题描述:农夫知道一头牛的位置,想抓住它。请编写程序,根据农夫提供的坐标,输出抓到牛的坐标。

时间限制:2000ms内存限制:65536kB

解题思路:

1. 读取农夫提供的坐标(x1, y1)和目标坐标(x2, y2)。

2.判断农夫与牛的位置关系,即判断农夫是否在牛的左边或右边。

3.根据位置关系,确定农夫需要向哪个方向移动才能抓住牛。

4.输出农夫移动后的坐标。

代码实现:

python

读取农夫和牛的坐标x1, y1=map(int, input().split())x2, y2=map(int, input().split())

判断位置关系if x1

运行代码,输入农夫和牛的坐标,即可得到农夫抓住牛后的坐标。

本篇文章主要讲述了openjudge 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就是

1,数组开够。

2,牛和老夫的方向判断。

3,重复入队的判断。

4,超界的判断。

5,人品好。 这是关键。

代码如下:

1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int x,y; 5 struct node 6 { 7 int x,times; 8 }; 9 node q[3000010]; 10 int visit[1000010]; 11 int heads=1,last=1; 12 int main() 13 { 14 scanf("%d%d",&x,&y); 15 if(y<x) 16 { 17   printf("%d",x-y); 18   return 0; 19 } 20 node a; 21 a.x=x;a.times=0; 22 q[heads]=a; 23 while(heads<=last) 24 { 25   node n=q[heads]; 26   heads++; 27   if(n.x==y) 28   { 29   printf("%d",n.times); 30   break; 31   } 32   node n1=n; 33    n1.times++; 34    n1.x+=1; 35   if(!visit[n1.x])q[++last]=n1 , visit[n1.x]=1; 36   n1.x-=2; 37   if(!visit[n1.x])q[++last]=n1 , visit[n1.x]=1; 38   n1.x+=1; 39   n1.x*=2; 40   if(n1.x<=100000&&!visit[n1.x])q[++last]=n1 , visit[n1.x]=1; 41 } 42 return 0; 43 }   

简直尴尬。

如何用长尾词提问解决openjudge 2971:抓住那头牛问题?

相关教程:C++视频教程

以上就是openjudge 2971:抓住那头牛 解题过程(附代码)的详细内容,更多请关注自由互联其它相关文章!

本文共计933个文字,预计阅读时间需要4分钟。

如何用长尾词提问解决openjudge 2971:抓住那头牛问题?

本文主要讲述了OpenJudge 2971:抓住那头牛的解题过程。如有需要,可向朋友咨询,希望能对你有所帮助。

问题描述:农夫知道一头牛的位置,想抓住它。请编写程序,根据农夫提供的坐标,输出抓到牛的坐标。

时间限制:2000ms内存限制:65536kB

解题思路:

1. 读取农夫提供的坐标(x1, y1)和目标坐标(x2, y2)。

2.判断农夫与牛的位置关系,即判断农夫是否在牛的左边或右边。

3.根据位置关系,确定农夫需要向哪个方向移动才能抓住牛。

4.输出农夫移动后的坐标。

代码实现:

python

读取农夫和牛的坐标x1, y1=map(int, input().split())x2, y2=map(int, input().split())

判断位置关系if x1

运行代码,输入农夫和牛的坐标,即可得到农夫抓住牛后的坐标。

本篇文章主要讲述了openjudge 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就是

1,数组开够。

2,牛和老夫的方向判断。

3,重复入队的判断。

4,超界的判断。

5,人品好。 这是关键。

代码如下:

1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int x,y; 5 struct node 6 { 7 int x,times; 8 }; 9 node q[3000010]; 10 int visit[1000010]; 11 int heads=1,last=1; 12 int main() 13 { 14 scanf("%d%d",&x,&y); 15 if(y<x) 16 { 17   printf("%d",x-y); 18   return 0; 19 } 20 node a; 21 a.x=x;a.times=0; 22 q[heads]=a; 23 while(heads<=last) 24 { 25   node n=q[heads]; 26   heads++; 27   if(n.x==y) 28   { 29   printf("%d",n.times); 30   break; 31   } 32   node n1=n; 33    n1.times++; 34    n1.x+=1; 35   if(!visit[n1.x])q[++last]=n1 , visit[n1.x]=1; 36   n1.x-=2; 37   if(!visit[n1.x])q[++last]=n1 , visit[n1.x]=1; 38   n1.x+=1; 39   n1.x*=2; 40   if(n1.x<=100000&&!visit[n1.x])q[++last]=n1 , visit[n1.x]=1; 41 } 42 return 0; 43 }   

简直尴尬。

如何用长尾词提问解决openjudge 2971:抓住那头牛问题?

相关教程:C++视频教程

以上就是openjudge 2971:抓住那头牛 解题过程(附代码)的详细内容,更多请关注自由互联其它相关文章!