牛客網暑期ACM多校訓練營(第一場)

2022-08-20 11:18:11 字數 2861 閱讀 3204

rank

solvedab

cdef

ghij

67/338

3/10oø

øoøø

øøøo

o: 當場通過

ø: 賽後通過

.: 尚未通過

solved by chelly

chelly's solution

比賽的時候是oeis找規律過的

我們把n*m的矩陣畫出來並建立座標系,左下角的點是(0,0),右上角的點是(n,m);考慮01和12的分界線,是兩條從(0,0)走到(n,m)的每次向右向上的折線,但是要求01折線要在12折線左邊(但不嚴格),為了嚴格,我們把12折線向右向下平移一格,即從(-1,1)移動到(n-1,m+1)。套用行列式容斥定理即可計算出方案數。

upsolved by chelly

chelly's solution

還是oeis找規律過的

非常喵的idea,原來給的矩陣描述其實是乙個鄰接矩陣的描述,於是問題轉化成了:請計算有多少個無向圖滿足所有點的度數都為2

進一步分析性質,這個圖應該是有若干個環組成,我們可以dp計數

設\(dp[i]\)表示有i個點的圖的個數,然後可以列舉最後乙個點所在環的大小進行轉移

upsolved by chelly

chelly's solution

\(x_i\)表示燈i是否亮,需要求的是\(e(sum(x_i)^3)\)

\(e(sum(x_i)^3)=e(\sum x_i x_j x_k )=\sum p(x_i x_j x_k )\) (因為是01分布)

\(p(x_i x_j x_k )\)表示燈i,j,k同時都亮的概率,我們要怎麼求這個概率呢?

我們可以寫出乙個矩陣\(a_\),表示第i個按鈕能否控制第j個燈

我們抽出i,j,k這三列,問題就變成了:有n個數字,每個數字3個bit,隨便取子集,問子集裡的數字異或結果0的概率。這個顯然就是\((\frac)^\)。

但問題是直接列舉是\(o(m^3)\)的,無法通過。

我們可以考慮列舉第i列,然後用它消其它所有列,把所有列消元過的情況丟到乙個map裡統計,根據rank不同來計數。

solved by chelly

chelly's solution

考慮列舉點的對映關係,但是容易發現有重複,於是我們可以把對應的邊放入到乙個vector裡進行hash

upsolved by chelly

chelly's solution

\(dp[i][j]\)表示做完了前i個數,已經刪除了j個數的不同子串行數目

轉移考慮在目前的結果後面裝上什麼數字,於是\(dp[i][j]\)可以轉移到\(dp[next(i,num)][j+next(i,num)-i]\)

其中next(i,j)表示在位置i後面的最近的乙個數字j的位置

時間複雜度\(o(nm^2)\)

upsolved by chelly

chelly's solution

分段討論貢獻,需要計算自然數冪和,用拉格朗日插值,比賽中hls被卡常了,要注意拉格朗日插值的寫法是可以去掉log的。

upsolved by chelly

chelly's solution

upsolved by chelly

chelly's solution

很容易想到做兩次樹形dp,down[u]和up[u]分別表示從上往下和從下往上做的最優值

注意到求up的時候轉移複雜度很高,可以用斜率優化降低複雜度

時間複雜度\(o(n)\)

upsolved by chelly

chelly's solution

字符集只有3種,我們可以列舉3!=6種對映方式得到6個字串

我們發現在這些字串的子串裡,除了個別字串外,其它所有本質不同的子串都出現了6次

對於那些由單個元素組成的子串,出現了3次

於是問題的關鍵就是:有若干個母串,問本質不同的子串的個數是多少個

直接建立廣義字尾自動機,計算每個節點的\(\sum\)即可

時間複雜度\(o(n)\)

solved by chelly

chelly's solution

莫隊水過,也可以用離線bit搞

開場chelly跟榜開j題,準備用莫隊莽一波,然後被卡了讀入,加了快讀就過了。syf和ch開場就一直苦思冥想a題,然而未果,syf和ch跟榜讀d,但是涉及離散數學並不能看懂題面,於是丟給了chelly,丟給chelly後syf繼續搞a,ch搞f。chelly讀了d題後,覺得暴力一下點的對映關係就行,但想不到如何去除多餘的計數。chelly苦思冥想後,想到了用hash邊解決,於是a掉了d題。期間ch發現f可搞,chelly和ch交流了一波之後,hls覺得十分正確,於是推式子去寫了。chelly和syf繼續攻a,chelly繼續想他的組合計數,syf繼續想他的dp,但都未果。這時ch發現需要計算自然冪和,但ch不會,於是chelly向ch丟出了拉格朗日插值的解法,ch看懂後一邊叫著玄學演算法一邊把程式碼出來了。然而無奈被卡常直到終場……在比賽快結束的時候,chelly不像當老實人了,借助oeis對a題的小結果進行xjb猜,猜出了結果,交上去a了。於是chelly更不老實了,暴力跑出了b的小結果,繼續用oeis把b題秒了。(但比賽已經結束了5分鐘)

chelly

被打自閉了啊tat

希望隊友能多補補題

牛客網暑期ACM多校訓練營(第一場)

j different integers 題 意 給你乙個數值元素為1到n,大小為n的陣列,q個詢問每次輸入 l,r 求a1 a2 a3 al,ar ar 1 ar 2 an中不同元素的個數 輸入範圍 1 n q 1e5 1 ai n 1 li,ri n the number of test cas...

牛客網暑期ACM多校訓練營(第一場)

考慮0和1的分界線,1和2的分界線,發現問題可以轉化為兩條不互相穿過的路徑的方案數 可重疊 題解的做法就是把一條路徑斜著平移,然後就轉化為不可重疊了。現在考慮,如何計算從 0,0 道 n,m 不相交不可重疊的方案數,一條從 0,1 出發到達 n 1,m 一條從 1,0 出發到達 n,m 1 將他們乘...

牛客網暑期ACM多校訓練營(第九場)

做法 看到下標 xor 這種情況就想 fwt 可是半天沒思路,於是放棄了。其實這個 n 瘋狂暗示啊。設未知數向量為 x 列一下方程組就可以發現有 b k sum a i x j 做法就顯然了吧,把 a 和 b 分別 fwt 對應相除然後反變換即可。表示前天才學的 fwt 就不會使了。include ...