牛客網 NC14132 貝倫卡斯泰露 DFS

2021-10-06 04:08:19 字數 2603 閱讀 5039

2. 解讀

3. **

time limit: 1000 ms

memory limit: 131072 kb

貝倫卡斯泰露,某種程度上也可以稱為古手梨花,能夠創造機率近乎為0的奇蹟,通過無限輪迴成功打破了世界線收束理論。和某科學者不同,貝倫並不在意世界線收束的那套理論,作為奇蹟之魔女,貝倫的愛好只在於品茶。作為品茶的消遣,貝倫正在解一道簡單的謎題。

給出乙個長度為n的數列 a

ia_i

ai​,問是否能將這個數列分解為兩個長度為 n/2

n/2n/

2 的子串行,滿足

第一行,乙個正整數 t

tt ,表示資料組數。

接下來 t

tt 組資料,每組資料的第一行,乙個正整數 n

nn,第二行 n

nn 個正整數 a

ia_i

ai​。

每組資料輸出一行,如果可以完成,輸出frederica bernkastel,否則輸出furude rika。

341

1226

1234

5641

221

frederica bernkastel

furude rika

furude rika

牛客網 nc14132 貝倫卡斯泰露

dfs

維護兩個陣列 lis

ta

lista

list

a 和 lis

tb

listb

list

b, 在每遇到乙個匹配的元素 a

ia_i

ai​ 時,會進入分岔點,如果該元素 a

ia_i

ai​ 進入佇列 lis

tb

listb

list

b 後能夠搜尋完全部元素,則搜尋完成。

如果 lis

ta

lista

list

a 中的元素數列超過所有元素數列 n

nn 的一半,即 lis

ta.s

ize(

)>n/

2lista.size() > n / 2

lista.

size

()>n/

2,則回退到上一步,讓元素進入lis

tb

listb

listb。

重複上述步驟即能遍歷所有情況。

比如如下測試用例。

161

1211

2

tab

le

1.計算過程表

table 1. \text

table1

.計算過程表 序號

l is

ta

lista

listalis

tb

listb

list

b入隊元素備註11nu

ll

null

null

1初始化21

11入隊 b

31 212

入隊 a

41 2 111

入隊 a

51 2 1 111

隊a元素4 > 361

n ul

lnull

null回退7

1 1nul

lnull

null

1入隊 a

81 1 2

n ul

lnull

null

2入隊 a

91 1 211

入隊b10

1 1 2

1 11

入隊b11

1 1 2

1 1 2

2入隊b

121 1 2

1 1 2

搜尋完成

#include

using

namespace std;

int list[41]

, lista[41]

, listb[41]

, t, n;

//i,j分別表示lista,listb中元素個數,id表示當前匹配元素下標

bool

dfs(

int i,

int j,

int id)

if(id > n)

//當前元素匹配,加入到listb

if(list[id]

== lista[j +1]

)}//即使相等也加入lista或者不相等加入到lista

lista[i +1]

= list[id]

;// lista長度加一,遞迴

return

dfs(i +

1, j, id +1)

;}intmain()

return0;

}

github:

牛客網 NC207427 直線 高精度

2.解讀 3.time limit c c 1秒,其他語言2秒 memory limit c c 262144k,其他語言524288k 平面上存在 n nn 條直線。請問 n nn 條直線在平面上最多存在多少交點。輸入資料的第一行是t,表示資料的組數 t 100 t 100 t 10 0 接下來每...

牛客NC18200烟花

總時間限制 1000ms 記憶體限制 262144k 小a有n個烟花,每個烟花代表著互不相同的顏色,對於第i個烟花,它有pi的概率點燃,現在小a要去點燃它們,他想知道產生顏色的期望個數及產生恰好產生k種顏色的概率 第一行兩個整數n,k.接下來一行n個數,第i個數pi表示第i個烟花被點燃的概率 輸出有...

牛客網 NC205084 牛牛愛字串

2.解讀 3.c c 1秒,其他語言2秒 c c 262144k,其他語言524288k 牛牛在玩字串。牛牛得到了乙個字串 可能含有空格 他希望在這些字串中提取出數字。例如 a1b23c456d007890中可以提取出1,23,456,7890共4個數字。現在,他得到了乙個長度高達1000的字串,請...