Maison > développement back-end > Tutoriel C#.Net > openjudge 2971 : Attrapez le processus de résolution de problèmes de vache (avec code)

openjudge 2971 : Attrapez le processus de résolution de problèmes de vache (avec code)

little bottle
Libérer: 2019-04-24 11:56:41
avant
4754 Les gens l'ont consulté

Cet article parle principalement du processus de résolution de problèmes d'openjudge 2971 : Catch the Cow. Les amis dans le besoin peuvent en apprendre davantage. J'espère que cela pourra vous être utile.

Durée totale : 2000 ms

Limite de mémoire : 65536 Ko

Description

L'agriculteur connaît l'emplacement d'une vache et veut l'attraper. L'agriculteur et la vache sont situés sur la droite numérique. L'agriculteur commence au point N (0<=N<=100000) et la vache commence au point K (0<=K<=100000). Le fermier a deux manières de se déplacer :

1 Passer de X à X-1 ou X+1. Chaque déplacement prend une minute.

2. Passez de X à 2*X. Chaque mouvement prend une minute.

Supposons que la vache ignore les actions de l’agriculteur et reste immobile. Quel est le temps minimum nécessaire à l’agriculteur pour attraper la vache ?

Saisir

deux entiers, N et K

Sortir

un entier, le nombre minimum de minutes qu'il faut à l'agriculteur pour attraper la vache

Exemple d'entrée

5 17

Exemple de sortie

4

Cette question est une question sur l'eau. mais. C'est très déroutant. Pour résumer, BFS vaut

1, le tableau est suffisamment ouvert.

2. Le jugement de direction de la vache et du vieux.

3. Répétez le jugement de rejoindre l'équipe.

4, jugement transcendantal.

5. Bon caractère. C'est la clé.

Le code est le suivant :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

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 }

 

  

Copier après la connexion

C'est tout simplement gênant.

Tutoriels associés : Tutoriel vidéo C++

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
c++
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal