聯考20200719 T1 合併奶牛

2022-09-10 13:48:22 字數 1343 閱讀 5434

分析:首先考慮\(dp\),設\(f_\)表示\(a\)用了前\(i\)個,\(b\)用了前\(j\)個的方案數

先給出式子:

\[f_=f_+f_-\sum_==b_}f_cat_

\]求和下面的條件是\(a\)和\(b\)的某一段相同,\(cat\)是卡特蘭數

如果沒有同樣的顏色,不用後面的求和,算出來的答案就是正確的,但是有了同樣的顏色,前面的會算重

後面的求和相當於兩個相同的長度為\(k+1\)的序列能排出多少種不同的序列

想象成在\((k+1)*(k+1)\)的格仔的輪廓線上走,選乙個\(a\)就向右走一步,選乙個\(b\)就向下走一步

假設其中一條路徑是這樣:

我們沿對角線翻摺:

紅色路徑翻摺後得到的橙色路徑形成的字串是相同的

本來的路徑數是\(\binom\),形成的本質不同的字串為\(cat_\)種

所以多出來的為\(\binom-cat_=cat_k\)種

總複雜的\(o(n^2)\)

(資料很水,後面的求和不乘卡特蘭數的係數有90分,我的k++寫成了k--有50分23333

(只有一半的資料最長公共子串長度大於1??只有乙個點最長公共子串長度大於2??看來資料是隨機的2333

聯考20200801 T1 林海的密碼

分析 很離譜的構造題 第乙個點直接輸出c條重邊就可以了 第二個點增加 k 個點,每個點向終點連2條邊 其實第二個點給了我們一些提示,讓我們向二進位制之類的方向思考問題 考慮構造乙個像這樣的環 我們算一下方案,其實可以列舉斷掉那條邊,兩端各自沿著紅藍邊走向根 答案是 2 0 2 1 2 1 2 2 2...

聯考20200525 T1 資料結構

分析 這道題可以看做單點修改區間查詢歷史最小值的資料結構題 區間修改單點查詢歷史版本可以使用二維資料結構維護 由於卡空間,這裡只能選擇kd樹 在kd樹上區間修改,歷史最值只需要統計單點到根節點的路徑上記錄的歷史最值就行了 關鍵是這道題如何轉化?我們把詢問離線,每乙個查詢 l,r 看做座標軸上的單點 ...

十二省聯考2019 D1T1異或粽子

嘟嘟嘟 做這題之前,強烈推薦先把這道題切了p1631序列合併。這兩道題思路基本一模一樣。首先把異或處理成字首異或,然後維護乙個大根堆,每一次取出堆頂加到答案裡面,然後把堆頂所在元素的次大的異或值放進堆裡。這樣迴圈 k 次,就是答案。關鍵在於對於數 sum i 怎麼找異或第幾大。眾人皆知是建01tri...