題目描述
在n*n的迷宮內,「#」為牆,「.」為路,「s」為起點,「e」為終點,一共4個方向可以走。從左上角((0,0)「s」)位置處走到右下角((n-1,n-1)「e」)位置處,可以走通則輸出yes,不可以走則輸出no。輸入格式
輸入的第一行為乙個整數m,表示迷宮的數量。輸出格式其後每個迷宮資料的第一行為乙個整數n(n≤16),表示迷宮的邊長,接下來的n行每行n個字元,字元之間沒有空格分隔。
輸出有m行,每行對應的迷宮能走,則輸出yes,否則輸出no。思路
簡單!直接爆搜,往四個方向,到了終點就停~
於是你貼了這麼乙份**:
#include
using
namespace std;
char maze[
1001][
101]
[101
], mov[5]
[3]=
;//上下左右
int m, size[
1001];
string pans[
1001];
//答案
bool vis[
1001][
101]
[101];
//剛才是否走過(不要走回頭路)
void
dfs(
int nowx,
int nowy,
int n)
for(
int i =
1; i <=
4; i++)}
}void
work()
pans[i]
="no"
;//假設無解
dfs(startx, starty, i);}
}int
main()
恭喜你,成功的——
若有所思.jpg:怎麼剪枝?
若是這個位置四個方向都走過了,就不用再走了。
新增乙個陣列,標記是否四個方向都走過——
上**——
#include
using
namespace std;
char maze[
1001][
101]
[101
], mov[5]
[3]=
;int m, size[
1001];
string pans[
1001];
bool vis[
1001][
101]
[101
], cv[
1001][
101]
[101];
//cv陣列+
void
dfs(
int nowx,
int nowy,
int n)
for(
int i =
1; i <=
4; i++)}
cv[n]
[nowx]
[nowy]=1
;}void
work()
pans[i]
="no"
;dfs
(startx, starty, i);}
}int
main()
青藤 10193 工作分配
題目描述新錄a b c三個工人,每人分配乙個工種,每個工種只需一人,經測試,三人做某種工作的效率如下表所示。如何分配三人的工作才能使他們工作效益最大?輸入格式為1個3 3的矩陣 矩陣的第一行為a做三種工作的效益,第二行為b做三種工作的效益,第三行為c做三種工作的效益。輸入保證各效益的範圍可能超過in...
青藤 210733 奶牛碑文
題目描述小偉暑假期間到大草原旅遊,在一塊石頭上發現了一些有趣的碑文。碑文似乎是乙個神秘古老的語言,只包括三個大寫字母 c o 和 w。儘管小偉看不懂,但是令他高興的是,c o w 的順序形式構成了一句他最喜歡的奶牛單詞 cow 現在,他想知道有多少次 cow 出現在文字中。如果 cow 內穿插了其他...
青藤 10118 質數環
題目描述 乙個大小為n n 17 的質數環是由1到n共n個自然數組成的乙個數環,數環上每兩個相鄰的數字之和為質數。如下圖是乙個大小為6的質數環。為了方便描述,規定數環上的第乙個數字總是1。若兩個質數環,數字排列順序相同則視為本質相同。現在要求你求出所有本質不同的數環。輸入格式 只有乙個數n,表示需求...