日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题)

發布時間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述
兩只牛逃跑到了森林里。農夫John開始用他的專家技術追捕這兩頭牛。你的任務是模擬他們的行為(牛和John)。

追擊在10x10的平面網格內進行。一個格子可以是:

一個障礙物, 兩頭牛(它們總在一起), 或者 農民John. 兩頭牛和農民John可以在同一個格子內(當他們相遇時),但是他們都不能進入有障礙的格子。

一個格子可以是:

. 空地

  • 障礙物

C 兩頭牛

F 農民John

這里有一個地圖的例子:

……

…*…

………

…*.F…

……

…*…

…C…*

….…

..…

牛在地圖里以固定的方式游蕩。每分鐘,它們可以向前移動或是轉彎。如果前方無障礙(地圖邊沿也是障礙),它們會按照原來的方向前進一步。否則它們會用這一分鐘順時針轉90度。 同時,它們不會離開地圖。

農民John深知牛的移動方法,他也這么移動。

每次(每分鐘)農民John和兩頭牛的移動是同時的。如果他們在移動的時候穿過對方,但是沒有在同一格相遇,我們不認為他們相遇了。當他們在某分鐘末在某格子相遇,那么追捕結束。

讀入十行表示農夫John,兩頭牛和所有障礙的位置的地圖。每行都只包含10個字符,表示的含義和上面所說的相同,你可以確定地圖中只有一個’F’和一個’C’.'F’和’C’一開始不會處于同一個格子中。

計算農夫John需要多少分鐘來抓住他的牛,假設牛和農夫John一開始的行動方向都是正北(即上)。 如果John和牛永遠不會相遇,輸出0。

輸入輸出格式
輸入格式:
每行10個字符,表示如上文描述的地圖。

輸出格式:
輸出一個數字,表示John需要多少時間才能抓住牛們。如果John無法抓住牛,則輸出0。

輸入輸出樣例
輸入樣例#1:
……
……
………

….F…
……
……
…C…
….…
..…
輸出樣例#1:
49
說明
翻譯來自NOCOW

USACO 2.4
農夫抓兩頭牛,農夫跟牛的行進方式一樣,但是要注意

牛-------><------農夫

這種情況不算相遇。

#include<bits/stdc++.h> using namespace std; const int dx[4]={-1,0,1,0};//上、右、下、左四個方向 const int dy[4]={0,1,0,-1}; int cx,cy,ct; int fx,fy,ft; bool f[21][21],v[21][21][4][21][21][4]; void dfs(int k) {if(cx==fx && cy==fy){printf("%d\n",k);return ;}if(v[fx][fy][ft][cx][cy][ct]==false){printf("0\n");return;}v[fx][fy][ft][cx][cy][ct]=false;if(f[cx+dx[ct]][cy+dy[ct]]==false){ct++;if(ct==4) ct=0;}else cx=cx+dx[ct],cy=cy+dy[ct];if(f[fx+dx[ft]][fy+dy[ft]]==false){ft++;if(ft==4) ft=0;}else fx=fx+dx[ft],fy=fy+dy[ft];dfs(k+1);} int main() {int i,j;char st[21];memset(f,false,sizeof(f));for(i=1;i<=10;i++){scanf("%s",st+1);for(j=1;j<=10;j++){if(st[j]=='.') f[i][j]=true;if(st[j]=='F') fx=i,fy=j,f[i][j]=true;if(st[j]=='C') cx=i,cy=j,f[i][j]=true;}}ct=ft=0;memset(v,true,sizeof(v));dfs(0);return 0; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。