ABC223比賽記錄
想說的話
打了將近一個月的\(Atcoder\),包含\(VP\)在內應該有10場左右,一直沒有時間總結,今天就把坑填了吧。
ABC223
A
詢問一個整數是否是100的正整數倍。
B
問一個字串的所有迴圈移位中字典序最大的和最小的。
迴圈一遍取出所有的字串,排序即可。
C
有\(n\)個保險絲,第\(i\)根保險絲的長度為\(A_i\),每單位長度燃燒所需要的時間為\(B_i\),問當累計燃燒多少單位長度時燃燒時間剛好是總燃燒時長的一半?
首先算出總燃燒時長,再一根根去燒,累加長度,當剩餘時間不夠燒完當前這根時,就按照比例擷取。
D
給一些偏序關係,要求取出一個序列,使它的字典序最小。
優先佇列+拓撲排序,和菜餚製作那個題很像。
E
這個題真的噁心人。
給一個\(X\cdot Y\)的大矩形,問能否切出三個矩形使這三個矩形的面積至少為\(A,B,C\)。
分情況討論。
第一種:保留長或寬分成三個矩形,整個圖案是"目"字形。
第二種:割一個矩形,再根據這個矩形的兩邊和原來大矩形的長寬平滑的割成三塊。
交換\(X,Y\),列舉\(A,B,C\)的全排列可以避免關於匹配問題的討論。
F
F沒有E噁心人。
給定一個括號序列,實現單點修改,詢問區間是否為合法的括號序列。
寫個支援區間修改和區間最大最小值的線段樹就好了。
G
換根DP。
設\(f[st][0/1]\)表示是否選取\(fa_{st}\to st\)這條邊的最大匹配數。
換根的時候把父親當成兒子討論一下。
H
線性基。
把詢問離線下來,線性基中除了元素外,還記錄每個元素出現的儘可能玩的位置。
基本上是個板子,詢問的時候關心是否用到了左端點以前的元素即可。
總結
這一場打的還不算差,只是E沒做出來心態有點崩,就沒看F了,這實在是一件遺憾的事。
打這種比賽一定要注意細節,保持好的心態,不要以為這個做不出後沒的更做不出,要看玩所有題。