Heim >Backend-Entwicklung >C#.Net-Tutorial >openjudge 2971: Catch the Cow Problemlösungsprozess (mit Code)

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

little bottle
little bottlenach vorne
2019-04-24 11:56:414649Durchsuche

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 }

  

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen