貓和老鼠 藍橋杯 手速 暴力練習賽(暴力搜尋)

2021-09-23 21:06:44 字數 1720 閱讀 3010

貓和老鼠 藍橋杯/手速/暴力練習賽

【題目描述】

貓和老鼠在10*10 的方格中運動,例如:

*...*.....

......*...

...*...*..

..........

...*.c....

*.....*...

...*......

..m......*

...*.*....

.*.*......

c=貓(cat)

m=老鼠(mouse)

*=障礙物

.=空地

貓和老鼠每秒中走一格,如果在某一秒末他們在同一格中,我們稱他們「相遇」。

障礙物上去或者出界,就用1 秒的時間做乙個右轉90 度。一開始他們都面向北方。

程式設計計算多少秒以後他們相遇。

【輸入格式】

10 行,格式如上

【輸出格式】

相遇時間t。如果無解,輸出-1。

【樣例輸入】

*...*.....

......*...

...*...*..

..........

...*.c....

*.....*...

...*......

..m......*

...*.*....

.*.*......

/*

思路:如果貓和老鼠不相遇,那麼一定是貓在某乙個格仔沿著某乙個方向重複走了2次以上並且

老鼠也是這樣。

*/ #include#include#include#includeusing namespace std;

char mp[15][15];

const int left_dir = 1;

const int right_dir = 2;

const int up = 3;

const int down = 4;

const int mouse = 1;

const int cat = 0;

struct node

bool flag[15][15][5];//記錄當前格仔在某乙個方向上是否走過

void init(int x, int y)

};node nd[2];

int cnt = 0;

bool move(int i)

if(mp[x][y] != '*') else

if(!nd[i].flag[x][y][nd[i].dir]) else return false;

}void test()

if(flag) printf("%d\n", cnt);

else printf("-1\n");

}int main()

else if(mp[i][j] == 'm')

}getchar();

}test();

return 0;}/*

*...*.....

......*...

...*...*..

..........

...*.c....

*.....*...

...*......

..m......*

...*.*....

.*.*......

*/

貓和老鼠 藍橋杯 手速 暴力練習賽(暴力搜尋)

貓和老鼠 藍橋杯 手速 暴力練習賽 題目描述 貓和老鼠在10 10 的方格中運動,例如 c.m.c 貓 cat m 老鼠 mouse 障礙物 空地 貓和老鼠每秒中走一格,如果在某一秒末他們在同一格中,我們稱他們 相遇 障礙物上去或者出界,就用1 秒的時間做乙個右轉90 度。一開始他們都面向北方。程式...

藍橋杯 乘法算式 暴力

觀察下面的算式 它表示 兩個兩位數字相乘,結果是3位數。其中的星號 代表任意的數字,可以相同,也可以不同,只要不是在首位的就可以是0。當然,滿足這個要求的算式很多,但我們還有如下的要求 所有星號所代表的數字全都是奇數。滿足這個要求的算式就不多了。比如 13 x 15 195 題目的任務是 編寫程式,...

藍橋杯 獎券數目 暴力

題目 獎券數目 有些人很迷信數字,比如帶 4 的數字,認為和 死 諧音,就覺得不吉利。雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某 活動的獎券號碼是5位數 10000 99999 要求其中不要出現帶 4 的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。請提交該數...