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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces 1344 题解

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

A

假設所有的 \((i+a_i)\)\(n\) 意義下構成排列則答案為 YES,否則為 NO.
時間復雜度 \(O(n)\)\(O(n\log n)\).
代碼: 79150268

B

由于每行每列必須有至少一個 S,所以每行每列為 # 的格子要么構成一個連續區間要么不存在。
如果某行或列不存在 #,則該行或列的格子必須放在一個不存在 # 的列或行。
于是得到了有解的必要條件:(1) 每行每列 # 的格子要么不存在要么構成連續區間;(2) “存在一行無 #”和“存在一列無 #”二者要么同時滿足要么同時不滿足。
充分性:每個連通塊全放 S,再隨便一個位置放 N,顯然最優。
時間復雜度 \(O(nm\alpha(nm))\).
代碼: 79341530

C

首先按大小關系建圖,拓撲排序,有解當且僅當無環(全放 \(\exists\) 即可)。
對于一個 \(x_i\) 而言,顯然如果有 \(j\gt i\)\(i,j\) 之間有大小關系(即存在一條路徑從 \(i\)\(j\) 或從 \(j\)\(i\)),那么 \(j\) 不可以是 \(\forall\).
于是對每個點統計一下能到它的和它能到的點中編號最小的,如果大于它本身就可以是 \(\forall\),否則設為 \(\exists\),這樣的方案是最優的。
而這保證了每個 \(\forall\) 是所有和它限制了大小關系的點中編號最小的,因此一定能構造合法解。
時間復雜度 \(O(n+m)\).
代碼: 79198382

D

由于貢獻關于 \(b_i\) 是凸的(\(f(b_i+1)-f(b_i)\)\(b_i\) 的上升而下降),所以可以考慮這樣一個過程:初始時 \(b_i\) 都是 \(0\),進行 \(K\) 輪,每一輪選擇當前 \(b_i\lt a_i\)\(\Delta(b_i)=f(b_i+1)-f(b_i)\) 最大的 \(i\),把 \(b_i\) 加一。
考慮優化:每次選擇的 \(\Delta\) 單調不升,因此可以二分最終結束時的 \(\Delta\),判斷加的輪數是否 \(\ge K\) 即可。注意二分邊界,有可能 \(\Delta=x\) 的時候個數 \(\lt K\)\(\Delta=x-1\) 的時候個數 \(\gt K\),這時候隨便調整一下即可。
時間復雜度 \(O(n\log W)\).
代碼: 79350373

E

不難發現限制形如“在區間 \([l_i,r_i]\) 中要操作一次 \(u_i\)”. 假設我們提取出所有的限制(共 \(S\) 個),就可以在 \(O(S\log n)\) 的時間內得到答案——用一個優先隊列維護,每次時間后推,把所有 $l\le $ 當前時間的加入優先隊列,然后刪去 \(r\) 最小的。
由 LCT 的經典分析可知有用的限制總數是 \(O(n+m\log n)\) 級別。考慮用 LCT 提取出這些限制。
每一次 access 時,當輕重邊切換的時候更新切換的點的限制列表,拉成同一棵 Splay 之后打一個標記,表示這些點最后一次被 access 的時間。
注意細節問題。無論重邊切換成什么(即便是 \(0\))都要加到列表里,最后對列表進行處理,去掉 \(0\),合并相鄰相同的。典型錯誤做法是如果切換成 \(0\) 則不加入列表,這樣會導致后面的區間的 \(l\) 變大。
時間復雜度 \(O(n\log n+m\log^2 n)\).
代碼: 79797116

F

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

總結

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

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