青藤 10116 迷宮

2021-10-13 19:58:36 字數 1769 閱讀 2080

題目描述

在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,表示需求...