構造題。
x =1
,2n−
1x=1,2n-1
x=1,2n
−1必然無解。
否則把x
xx放中間,x−1
,x+1
x-1,x+1
x−1,x+
1放左右,一定有解。
線性的期望可以拆開逐次算:
單獨考慮每次操作:
跳躍後a
ja_j
aj的期望位置:aj+
1+aj
−1−a
ja_+a_-a_j
aj+1+
aj−1
−aj
,發現:
a j+
1−aj
′=aj
−aj−
1,aj
′−aj
−1=a
j+1−
aj
a_-a_j'=a_j-a_,a_'-a_=a_-a_
aj+1−
aj′
=aj
−aj−
1,a
j′−
aj−1
=aj
+1−
aj原數列差分得到bj=
aj+1
−a
jb_j=a_-a_
bj=aj
+1−
aj,a
ja_j
aj的一次跳躍相當於swa
p(bj
,bj−
1)
swap(b_j,b_)
swap(b
j,b
j−1
) 那麼執行一次set
setse
t後相當於對b
bb進行了一次輪換。
求出所有輪換組。輪換組裡找m
mm次輪換後的位置是o(1
)o(1)
o(1)
的。二分答案,將 dd的數看作0 00,≥mi d\geq mid ≥mid 的數看作111。 考慮從中間位置不斷向兩端拓展,若先遇到連續的2個0/1,則最後頂端必然為0/1,否則比較01的個數即可。 一些性質: 發現可以構造操作(記大寫字母與小寫字母為兩種正反狀態): abcde -> cbade -> cbeda -> ebcda -> ebadc -> abedc -> abcde cbade->abcde -> adcbe -> cdabe -> cbade -> abcde -> abcde(執行上面那串操作) (懶於構造,直接貼題解) 2操作也就是說交換相鄰兩個奇偶性相同的列且保持正反狀態不變時,必然會使得乙個奇偶性不同的列正反狀態改變。 那麼模擬氣泡排序的過程(bit維護),計算奇數列和偶數列是否能達到目標矩陣的正反狀態。 (只需要反的列個數與目標矩陣反的列個數差為偶,因為可以通過1操作達到目標狀態) 把格點(x, y) (x,y) (x,y )看做點x →x\to x→點y yy的一條有向邊。 則原圖的染色相當於由x→y ,y→z x\to y,y\to z x→y,y→ z得到z→x z\to x z→x。 發現只有每個弱連通圖內的點可能會增加連邊。 所以先把邊看成無向的,在劃分出的每個弱連通圖內計算貢獻: 基於對圖論題目本質的理解,題解中套用乙個很妙的方案——三染色:使得紅點連向黃點,黃點連向藍點,藍點連向紅點。 若無法染色,顯然圖會被連成完全圖,貢獻為n 2n^2 n2。若只能染出≤ 2\leq 2 ≤2種顏色,則不會有新連邊,貢獻為mmm。 否則設三種顏色點數分別為c1, c2,c 3c_1,c_2,c_3 c1,c2 ,c3 ,相應顏色之間的點均可以連邊,貢獻為c1c 2+c2 c3+c 3c 1c_1c_2+c_2c_3+c_3c_1 c1c2 +c2 c3+ c3c 1 給出長度為 n 的字串 s 和 t 求乙個字串滿足 長度至少為 n 字首為 s 字尾為 t 請找出長度最短的這樣的字串並輸出他的長度 資料範圍很小,直接列舉判斷就好了。給出乙個 n 層的方格金字塔,自頂向下依次標號為第 1 到第 n 層。其中第 i 1 le i le n 層有 2i 1 個方格。第... 有乙個字串 x 對它進行操作。該串只含 s 和 t 凡是 s 與 t 連在一起都要將它們一起去掉。現在進行若干次操作直到該串中沒有連在一起的 st 問剩下的長度。考慮用對頂棧模擬。先將所有的字串加入右棧中。依次將乙個字元從右棧中彈出,加入左棧。如果在任意時刻,出現了左棧頂是 s 而右棧頂是 t 那麼... 用若干個 1 times 1 times 的小方塊 立方體 組成乙個 a times b times c 的大長方體,每個小方塊可以塗成紅色或藍色,但要滿足以下要求 至少有 1 個紅色方塊與 2 個藍色方塊。所有的紅色方塊必須組成乙個長方體。所有的藍色方塊必須組成乙個長方體。求所有滿足要求的染色方案...Atcoder AGC006 解題報告
Atcoder AGC005 解題報告
Atcoder AGC004 解題報告