貓和老鼠 藍橋杯/手速/暴力練習賽
【題目描述】
貓和老鼠在10*10 的方格中運動,例如:
*...*.....
......*...
...*...*..
..........
...*.c....
*.....*...
...*......
..m......*
...*.*....
.*.*......
c=貓(cat)
m=老鼠(mouse)
*=障礙物
.=空地
貓和老鼠每秒中走一格,如果在某一秒末他們在同一格中,我們稱他們「相遇」。
障礙物上去或者出界,就用1 秒的時間做乙個右轉90 度。一開始他們都面向北方。
程式設計計算多少秒以後他們相遇。
【輸入格式】
10 行,格式如上
【輸出格式】
相遇時間t。如果無解,輸出-1。
【樣例輸入】
*...*.....
......*...
...*...*..
..........
...*.c....
*.....*...
...*......
..m......*
...*.*....
.*.*......
1/*2思路:如果貓和老鼠不相遇,那麼一定是貓在某乙個格仔沿著某乙個方向重複走了2次以上並且
3老鼠也是這樣。 4*/
5 #include6 #include7 #include8 #include9
using
namespace
std;
1011
char mp[15][15
];12
13const
int left_dir = 1;14
const
int right_dir = 2;15
const
int up = 3;16
const
int down = 4;17
const
int mouse = 1;18
const
int cat = 0;19
20struct
node
2627
bool flag[15][15][5];//
記錄當前格仔在某乙個方向上是否走過
2829
void init(int x, int
y)35
};36
37 node nd[2
];38
int cnt = 0;39
40bool move(int
i)61
if(mp[x][y] != '*'
) else
6768
if(!nd[i].flag[x][y][nd[i].dir]) else
return
false;72
}7374void
test()
85if(flag) printf("
%d\n
", cnt);
86else printf("
-1\n");
87}8889
intmain()
99else
if(mp[i][j] == 'm'
)103
}104
getchar();
105}
106test();
107return0;
108}
109/*
110*...*.....
111......*...
112...*...*..
113..........
114...*.c....
115*.....*...
116...*......
117..m......*
118...*.*....
119.*.*......
120*/
貓和老鼠 藍橋杯 手速 暴力練習賽(暴力搜尋)
貓和老鼠 藍橋杯 手速 暴力練習賽 題目描述 貓和老鼠在10 10 的方格中運動,例如 c.m.c 貓 cat m 老鼠 mouse 障礙物 空地 貓和老鼠每秒中走一格,如果在某一秒末他們在同一格中,我們稱他們 相遇 障礙物上去或者出界,就用1 秒的時間做乙個右轉90 度。一開始他們都面向北方。程式...
藍橋杯 乘法算式 暴力
觀察下面的算式 它表示 兩個兩位數字相乘,結果是3位數。其中的星號 代表任意的數字,可以相同,也可以不同,只要不是在首位的就可以是0。當然,滿足這個要求的算式很多,但我們還有如下的要求 所有星號所代表的數字全都是奇數。滿足這個要求的算式就不多了。比如 13 x 15 195 題目的任務是 編寫程式,...
藍橋杯 獎券數目 暴力
題目 獎券數目 有些人很迷信數字,比如帶 4 的數字,認為和 死 諧音,就覺得不吉利。雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某 活動的獎券號碼是5位數 10000 99999 要求其中不要出現帶 4 的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。請提交該數...