2021牛客寒假演算法基礎集訓營1 B 括號

2021-10-18 16:33:00 字數 1266 閱讀 6601

題目:括號

description

請你構造乙個非空的括號字串,包含正好 k 個不同合法括號對。

所謂括號字串,是指由』(『和』)'這兩種字元構成的字串。

要求構造的字串長度不超過100000。

input

乙個整數 k。

0=< k <=109

output
乙個僅包含左右括號字串,其中有 kk 個合法的括號對。如果有多種構造方法,輸出任意一種合法方案即可。

sample

input

output
interpretation
假設字串陣列下標從 1 開始,則 (1,2), (1,4), (3,4) 共計 3 個合法括號對

當然,"()))" 也是一種合法的構造

solution

可以大膽的去猜想需要乙個對k開方的操作。

我們可以知道,用有限的括號字元,去構造盡量多的合法括號對。需要構造成下面這種形式:

((()))

(()))

這種形式:合法括號對數 = 左括號數 x 右括號數

是規整的,層層巢狀的,而不是這種:(()()())

對k開方,l = sqrt(k);r = l;得到乙個規整的括號字串,再進行修改。

缺少的合法括號對數 x = k - l * r

當 x >= r,則r++。

此時 缺少的合法括號對數 必定 小於 r。

再在右括號裡,找到乙個合適的位置插入乙個左括號,補全缺少的合法括號對數,即可。

例:

2021牛客寒假演算法基礎集訓營3

三場牛客下來覺得自己越來越不在狀態,思路不清晰,一下手就是bug,每調完一題刷下榜都被甩開十里地,罰時慘不忍睹 傳送門 簽到 include using namespace std typedef long long ll const ll inf 0x3f3f3f3f const ll mod 1...

2021牛客寒假演算法基礎集訓營1

題目描述 請你構造乙個非空的括號字串,包含正好 k 個不同合法括號對。所謂括號字串,是指由 和 這兩種字元構成的字串。要求構造的字串長度不超過100000。輸入描述 乙個整數 k。乙個整數 kk。0 k 1e9 輸出描述 乙個僅包含左右括號字串,其中有 kk 個合法的括號對。如果有多種構造方法,輸出...

2021牛客寒假演算法基礎集訓營6

思路 k1排k2前面滿足 k1.a k2.ax k2.b k1.b k1.ax k1.b k2.b k2.ak1.b k2.b k1.a k2.a k1.b include define ull unsigned long long define ll long long const int inf...