openjudge 2971: Catch the Cow Problemlösungsprozess (mit Code)

little bottle
Freigeben: 2019-04-24 11:56:41
nach vorne
4615 Leute haben es durchsucht

In diesem Artikel geht es hauptsächlich um den Problemlösungsprozess von openjudge 2971: Catch the Cow. Freunde in Not können davon erfahren.

Gesamtzeitlimit: 2000 ms

Speicherlimit: 65536kB

Beschreibung

Der Landwirt kennt den Standort einer Kuh und möchte sie fangen. Sowohl der Bauer als auch die Kuh befinden sich auf der Zahlengeraden. Der Bauer beginnt am Punkt N (0<=N<=100000) und die Kuh beginnt am Punkt K (0<=K<=100000). Der Bauer hat zwei Möglichkeiten, sich zu bewegen:

1. Bewegen Sie sich von X nach X-1 oder X+1.

2. Bewegen Sie sich von X zu 2*X.

Angenommen, die Kuh ist sich der Handlungen des Landwirts nicht bewusst und steht still. Wie viel Zeit benötigt der Landwirt mindestens, um die Kuh zu fangen?

Geben Sie

zwei Ganzzahlen ein, N und K.

Geben Sie

eine Ganzzahl aus, die Mindestanzahl an Minuten, die der Landwirt benötigt, um die Kuh zu fangen

Beispieleingabe

5 17

Beispielausgabe

4

Diese Frage ist eine Wasserfrage. Aber. Es ist sehr verwirrend. Zusammenfassend lässt sich sagen, dass BFS

1 ist, das Array ist offen genug.

2. Das Richtungsurteil der Kuh und des alten Mannes.

3. Wiederholen Sie das Urteil, dem Team beizutreten.

4, transzendentales Urteil.

5. Guter Charakter. Das ist der Schlüssel.

Der Code lautet wie folgt:

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 }

  
Nach dem Login kopieren

Es ist einfach peinlich.

Verwandte Tutorials: C++-Video-Tutorial

Das obige ist der detaillierte Inhalt vonopenjudge 2971: Catch the Cow Problemlösungsprozess (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
c++
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!