1. 程式人生 > 其它 >20220315模擬賽總結

20220315模擬賽總結

20220315模擬賽總結

A. 卡片

題目大意

\(A\cap B==B\)

大概思路

對A,B陣列進行排序

然後用指標在每個陣列匹配

B. 六子連線

題目大意

任意橫著、豎著、\(45°\)斜著的連續六個中是否有四個黑色的情況

大概思路

DP、搜尋都行,不過要加佇列優化

C. 數列查詢

題目大意

三種操作:插入,求第k個的前驅,求第k個的後驅。

大概思路

multiset或者平衡樹

D. 糖果機

題目大意

每次\(sum+=A_k且k+=A_k\)

大概思路

找週期直接mod

E. 簡單的數學題

題目大意

\(\lfloor \frac{10^n}{m}\rfloor mod M\)

大概思路

\((10^nmod x^2)/x\)

F. 翻卡片

題面

\(N\)張卡片,編號為\(1,2,……,N\) ,平鋪在桌面上。 第 張卡片的正面數字為\(a_i\),反面的數字為\(b_i\) 。 現在你可以任意翻轉卡片,使得卡片朝上的數字種類數最多,輸出這個最多的種類數。

大概思路

點數減去樹的個數

可以用並查集和搜尋做

G. 交換行李

題面

\(N\)個人,編號為\(1,2,……,N\) ,其中第\(i\)個人的重量為\(a_i\), 。
又有\(N\)件行李,編號為\(1,2,……,N\) ,其中第\(i\)件行李重量為\(b_i\)
一開始,第\(i\)個人拿的是第\(p_i\)

,件行李。兩個人可以交換他們手上的行李。但是,如果一個人拿到了等於或大於他體重的行李,則他會太累,以至於他沒有力氣再參與任何交換了。 而如果一個人一開始的行李就等於或大於他的體重,則他就永遠不會交換。 我們希望通過交換,使得第\(i\)個人擁有第\(i\)件行李,如果能夠達成這個目標,請輸出最少的交換次數,並輸出方案。如果不能,則輸出-1.

大概思路

先判斷是否合法

從最小的開始交換