日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces 1338 题解

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces 1338 题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

A

對于每個 \(i\) 我們求出 \(b_i\) 表示 \(i\) 這個數最少要增加多少(\(\max^i_{j=1}a_j-a_i\)),答案等于最小的 \(k\) 使得 \(2^k-1\ge \max^n_{i=1}b_i\).
時間復雜度 \(O(n)\).
代碼: 76336034

B

最小:只要存在兩個葉子距離為奇數,答案就是 \(3\),否則是 \(1\).
最大:等于非葉子節點數加上和至少一個葉子節點相連的非葉子節點數 \(-1\)。顯然和同一個點相連的葉子邊權必須相等。那么考慮去掉葉子節點后剩下的樹,由于你可以安排任意大的數,所以一定能做到邊權互不相同。
時間復雜度 \(O(n)\).
代碼: 76352259

C

找規律即可。打表前 \(16\) 位不難發現就是先四進制分解,由 \(\mod 3\) 的值得到答案的最高位,剩下的每一位做個置換。
歸納證明應該不難。
聽說這個規律還和 nim 積有關。
時間復雜度 \(O(\log n)\).
代碼: 76377989

D

我的做法還是找規律(然而腦速太慢賽后搞了一上午)。找規律的過程非常麻煩,實在不太會講,直接說一下結論好了:
\(f[u][0/1]\) 表示 \(u\) 點的子樹內,被根包含/不被根包含的最大層數。需要 \(0/1\) 是因為把根套在外面之后,僅僅能套住那些不被根的兒子包含的圈,而需要和根的兒子相交。這也就意味著,一個子樹的狀態可以表示為兩個相交的圈,其中較大的一個是根,另外一個不是根。
假設 \(u\) 有若干兒子 \(v_1,v_2,...,v_{sonn[u]}\). 那么最優方案一定會套成如下所示,藍色的是 \(u\),黑色和紅色分別是每個兒子的根 (\(0\)) 和非根 (\(1\)).

于是可以得到這樣的方程:

\[f[u][1]=\max_i \max(f[v_i][0],f[v_i][1])+(sonn[u]-1) \]

再考慮 \(f[u][0]\) 的轉移,顯然有

\[f[u][0]=\max_i f[v_i][1]+1 \]

換根 dp 即可。
時間復雜度 \(O(n)\).
比較有道理的做法見 \(\color{black}{\text{s}}\color{red}{\text{uwakow}}\) 神仙的題解: https://www.cnblogs.com/suwakow/p/12692393.html
代碼: 76449398

E

題解: https://www.cnblogs.com/suncongbo/p/12779107.html

總結

以上是生活随笔為你收集整理的Codeforces 1338 题解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。