ホームページ  >  記事  >  バックエンド開発  >  openjudge 2971: 牛の問題解決プロセスを把握する (コード付き)

openjudge 2971: 牛の問題解決プロセスを把握する (コード付き)

little bottle
little bottle転載
2019-04-24 11:56:414616ブラウズ

この記事では主に openjudge 2971: Catch the Cow の問題解決プロセスについて説明します。困っている友人はそれについて学ぶことができます。お役に立てれば幸いです。

合計制限時間: 2000ms

メモリ制限: 65536kB

説明

農場主は牛の位置を知っているので、牛を捕まえたいと考えています。農家と牛はどちらも数直線上に位置しており、農家は点 N (0

1. X から X-1 または X 1 に移動します。各移動には 1 分かかります。

2. X から 2*X に移動します。各移動には 1 分かかります。

牛が農夫の行動に気づかず、静止しているとします。農家が牛を捕まえるまでに最低どれくらいの時間がかかりますか?

入力

2 つの整数、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 }

  

これは本当に恥ずかしいことです。

関連チュートリアル: C ビデオ チュートリアル

以上がopenjudge 2971: 牛の問題解決プロセスを把握する (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。