這篇文章主要介紹了openjudge 2971:抓住那頭牛的解題過程是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
總時間限制: 2000ms
內(nèi)存限制: 65536kB
描述
農(nóng)夫知道一頭牛的位置,想要抓住它。農(nóng)夫和牛都位于數(shù)軸上,農(nóng)夫起始位于點N(0<=N<=100000),牛位于點K(0<=K<=100000)。農(nóng)夫有兩種移動方式:
1、從X移動到X-1或X+1,每次移動花費一分鐘。
2、從X移動到2*X,每次移動花費一分鐘。
假設(shè)牛沒有意識到農(nóng)夫的行動,站在原地不動。農(nóng)夫最少要花多少時間才能抓住牛?
輸入
兩個整數(shù),N和K
輸出
一個整數(shù),農(nóng)夫抓到牛所要花費的最小分鐘數(shù)
樣例輸入
5 17
樣例輸出
4
這道題就是一道水題。但是。它非常的坑??偨Y(jié)一下BFS就是
1,數(shù)組開夠。
2,牛和老夫的方向判斷。
3,重復(fù)入隊的判斷。
4,超界的判斷。
5,人品好。 這是關(guān)鍵。
代碼如下:
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:抓住那頭牛的解題過程是什么內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!
新聞標題:openjudge2971:抓住那頭牛的解題過程是什么-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article0/dojpio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、定制網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、響應(yīng)式網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容