CS Academy 題目泛做

2021-08-21 16:19:43 字數 2782 閱讀 2746

乙個神犇同學向我推薦了這個oj。這個oj上的題目都是挺經典的。資料、標程、題解都有,已經是很方便了。出於強迫症,下面的題目按照字典序排列。太簡單的題大家應該都能一看就會,就直接略了。

這個網經常崩,做起來好麻煩,所以這個坑先停了吧…

addition:略。

a-game:顯然如果當前還有b就不會去選a。也就是說遊戲的過程一定是先把b拿完,最後兩人乙個乙個地拿a。若a是偶數則不論怎樣一定平局,否則誰先拿完b誰贏,因此把所有連續的b拿出來做乙個nim遊戲。

a single one:下標分奇偶,每次更新的是一段區間,並且每個點只會更新一次。從更新的區間兩端向裡找所有這一次操作更新的結點丟進佇列即可。

bad triplet:如果圖中有點度不小於3的節點,那麼隨便抓出它的任意三個出點,要麼有環,要麼沒環,都合題意。否則圖中就剩一些鏈和環。當且僅當有乙個環是3的倍數才有解。

ball sampling:記 f[

s]f [s

]表示已經取過的顏色集合是

s s

,取完所有顏色的期望步數,然後列舉下乙個取到什麼顏色即可。

bfs-dfs:兩個序一起做很麻煩,考慮先定住其中的dfs序,再調整出bfs。我們只需按dfs把所有點連成一條鏈,然後按照bfs序從1號點向對應的點連邊即可。看起來很複雜的題,實際上是可以有套路的。

bst fixed height:o(

n3)' role="presentation" style="position: relative;">o(n

3)o(

n3)的dp就能過。

build binary matrix:考慮簡化問題,刪去所有相同的行只保留乙個,列同理。問題就轉化為找出乙個每一行,每一列分別各不相同的矩陣。不妨設此時 n≤

m n≤m

,若 2n

<

m 2

n<

m則顯然是無解,否則對列取遍 0∼

2n−1

0 ∼2

n−

1即可。

build the towers:如果存在相鄰的兩個相同的不是0的數,顯然無解。判斷完之後考慮構造。對於3的位置i,操作一定是i-1,i,i+1,i。然後類似地再考慮2和1的位置即可。操作過程中出現矛盾即無解。

contiguous segments:顯然最後一定有一條直線沒有動,直接列舉這一條直線然後把別的直線挪過來。

coprime pairs:轉化成找到

k k

對不互質的數,只需找到乙個最小的

t' role="presentation" style="position: relative;">t

t滿足 k≤

t∗(t

+1)2

k ≤t

∗(t+

1)

2,接下來只需第乙個位置填2,接下的來的

t t

個位置分類一下填2或3或6,餘下空位全部填1即可。至於要求數字互不相同只需給每乙個數分配乙個大於3的質數乘上即可。

cut the tree:隨便取一條直徑出來,則刪點一定是在這個直徑的兩端刪。當且僅當刪掉乙個點而直徑不變時不能刪。也就是從刪掉的這一端的另一端有乙個等長的另一條直徑。因此對於取出來的直徑上的每乙個點算一下它不經過直徑的最長鏈,對它在直徑的兩個方向上貢獻的長度維護一下即可。

expected merge:觀察一下,發現區間長度只有 o(

log⁡n)

' role="presentation" style="position: relative;">o

(logn)

o(log⁡n)

種取值,所以暴力算就可以了。

expected tree degrees:新加入的點對前面所有的點的貢獻都是一樣的。把要求的期望式子寫出來,把平方展開就能直接算了。注意0號點加入的時候是沒有連邊的。

frequency exception:略。

increasing pair:略。

k swap:對任意兩個數 ai

,aj ai,

aj

,如果差大於

k k

就從左往右連一條有向邊。最後按字典序拓撲排序取出就是答案,連邊可以用可持久化線段樹優化。注意記憶體限制。

lis generator:把

k' role="presentation" style="position: relative;">k

k寫成二進位制形式,每次遞增地往陣列中放入兩個相同數字即可構造出最大的2的次冪,然後從大到小依次考慮其它是1的二進位制位,只需在後面補上一串遞增的數字讓其長度足夠即可。

matrix coloring:考慮簡化問題,先判斷圖是否有解,只需每次貪心刪掉顏色相同的行/列。在有解的基礎上,如果兩個行/列完全相同,則可以一起不操作,否則不能。因此只需找出行/列完全相同的數量的最大值。此時弱化了條件,前面判斷有解此時就一定還是有解。

removed pages:略。

server attack:略。

17 10 20題目泛做

終於停課了 於是來補一發題解 hzwers模擬t1 逗比三角形 題意 給若干個三角形的三邊長然後問如何把這些三角形放在乙個寬度l ll高度無限的矩形框裡面使得這些三角形有一條邊緊貼矩形底邊的同時在矩形框裡面覆蓋的面積最大,並算出這個面積 分析 這非常結論題 顯然我們把三角形裡面最短的那條邊放在下面是...

17 10 24題目泛做

題意 求二維和與rmq,保證每次查詢的區間長寬不超過整個矩陣長寬的一半 分析 二維和沒難度,二維rmq這裡因為資料有問題 只好開short水過,同時順便加上了連續訪問的黑科技然後卡了過去 不過正解是經典的思想,就是一種簡單的變形 但好難寫啊qaq 我們考慮f i,j,k 表示以 i j 為左上角,邊...

題目泛做 蛋糕(分治NTT)

原題是thupc2018蛋糕,然後這裡擴充套件到了n維,沒什麼區別。核心思想就是乙個塊在其他維度上隨便亂跑,在這個維度上也能隨便亂跑。所以我們實際上要考慮的就是在每一維上出現0,1,2個面的方案數。每一維可以任意選擇,所以直接分治ntt把每一維的生成函式乘起來就行了。include define l...