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
牛客網 nc14132 貝倫卡斯泰露frederica bernkastel
furude rika
furude rika
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。
重複上述步驟即能遍歷所有情況。
比如如下測試用例。
tab161
1211
2
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的字串,請...