(紀中)1747 馬蹄印 DFS

2021-10-02 20:00:19 字數 1591 閱讀 7845

(file io): input:hshoe.in output:hshoe.out

時間限制: 1000 ms 空間限制: 262144 kb 具體限制

goto problemset

題目描述

雖然當奶牛貝里斯找到平衡序列後很高興了,但是他現在對序列提出了乙個更高的要求,就是要求每個序列中必須是先一定數量的左括號然後是與左括號相同數量的右括號。例如:(((()))),就是乙個完美的平衡序列。

當貝里斯某天在農場上走的時候,他在地上發現了馬蹄印,這個農場是乙個n∗n

n*nn∗

n的方格,每個小方格中都有乙個馬蹄印。貝里斯希望從方格的最左上角的地方開始出發,然後每次可以向上或者向下或者向左或者向右移動一步,使得他走過的每個小方格中的馬蹄印能夠組成乙個完美的平衡序列。當然了,貝里斯不能重複經過任何小方格。

請幫助貝里斯在這個n∗n

n*nn∗

n的方格中找出長度最長的完美序列的長度。

輸入

第一行乙個正整數n

nn,表示農場的大小。

接下來n

nn行,每行n

nn個字元,表示n∗n

n*nn∗

n的方格上馬蹄印的分布情況。

輸出

只有一行乙個整數,表示最長的完美序列的長度,如果不存在這樣的完美序列(例如起始位置就是右括號),則輸出000。

樣例輸入

4(())

樣例輸出

8資料範圍限制

2<=n<=5。

解題思路

深搜ing:如果是左括號就 rig

ht+1

right+1

right+

1,如果是有括號就 lef

t+

1left+1

left+1

**

#include

#include

#include

#include

#include

#include

using namespace std;

const int dx[5]

=;const int dy[5]

=;int a[

1000][

1000];

char f[10]

[10];

int n,ans;

string c;

bool check

(int x,int y)

void

dfs(int x,int y,int l,int r)

for(int i=

1;i<=

4;i++)}

}int main()

a[1][

1]=1

;if(f[1][

1]==')'

)printf

("0");

else

}

馬蹄印 深搜

description 奶牛貝里斯對序列提出了乙個更高的要求,就是要求每個序列中必須是先一定數量的左括號然後是與左括號相同數量的右括號。例如 就是乙個完美的平衡序列。這個農場是乙個nn的方格,每個小方格中都有乙個馬蹄印。貝里斯希望從方格的最左上角的地方開始出發,然後每次可以向上或者向下或者向左或者向...

2019紀中培訓

2019.01.22 noip普及組 模擬賽c組 在紀中的第一套題 為什麼是xp?我好水四道題三道dp 2019.01.23 noip普及組 模擬賽c組 換到了科學樓,有windows 7真好 有點強大 比賽結束之後,沒有乙個人把第三道題a了 聽到巨佬講規律,心裡懵逼的一批 晚上還有北大老師講課 2...

2016 6 11紀中模擬賽

題目 t1 赤裸裸的水題,直接高精度就行了。t2 這題本應放到3或4題上,可老師應該是故意放到這裡的吧 考試時我先想到的是貪心,隨後我又證明了我那種貪心是不可取的,可是我想都沒想下去,就認為這道題是dfs 記憶化了。所以,我就開始打記憶化了,可是題目的條件是100000 100000的,但如果開這麼...