CSP S2考前綜合強化刷題 Day1

2021-10-09 22:34:38 字數 3187 閱讀 5392

阿克掛 240 /dk

有 n

nn 張牌,奇數屬於第乙個人,偶數屬於第二個人,兩個人輪流按撲克規則進行遊戲。指定乙個先手,求誰能獲勝。

以後看見這些簡單的找規律題,一定要從下邊界開始乙個個手玩,不然爆零兩行淚。

n =2

n = 2

n=2 時顯然誰先手誰獲勝,這是乙個特殊情況,下面預設 n

>

2n > 2

n>2。

當 n

nn 為奇數時

1 2 3 4 5

a 1 3 5

b 2 4

當 a​ 先手時,他可以選 1

11,之後去蓋 b​。

當 b 先手時,它可以選 2

22,之後去蓋 a。

當 n

nn 為偶數時

1 2 3 4 5 6

a 1 3 5

b 2 4 6

當 a 先手時,它隨便選乙個數,b 都可以用最大的數去蓋他,之後主動權就是 b 的了,一直壓著打就行。

當 b 先手更不用提了。

不需要高精,偶數奇數直接看最後一位。

給 n ×m

n \times m

n×m 的網格刷顏色,初始都是紅色,每次可以把一行或一列染成紅色或藍色,問最後藍色的個數。

套路題,顯然對於同一行或列的操作,只有最後一次有用,那麼記錄一下最後一次的操作和操作的時間。這樣我們通過字首和,可以求出在某乙個對行染色操作之後,有多少個對列染色。枚舉行求貢獻,討論一下

std 是倒序求,這樣不用字首和了。

有乙個拓展

先明確一點,那個 p

pp 和 q

qq 是為了減少輸入量的,直接看成乙個給定的區間就行了。還有,區間覆蓋不能差分。

直接說乙個有點像暴力的做法。還是倒著處理。我們把每個位置看作乙個並查集,初始老大都是自己。對於乙個區間 [l,

r][l,r]

[l,r

] 找到裡面的並查集進行修改,這樣你記錄一下每個點為左端點有沒有並查集就行,然後你將之間所有的並查集合並到 r+1

r + 1

r+1 所歸屬的並查集中,手玩一下正確性也沒問題。複雜度呢就是你每個點算一次就被合併了,不會重複的,所以是線性的。

給你 n

nn 個人的初始位置和速度,和 m

mm 個形如 t

kt \ k

tk的詢問,求 t

tt 秒後排名為 k

kk 的人的編號,位置相同編號小優先。

做過一道類似的題,所以開始想偏了,最後竟然暴力碾壓標算。

分 t

>10

5t > 10^5

t>10

5 和 t≤1

05t \leq 10^5

t≤10

5 討論,這樣 >10

5> 10^5

>10

5 初始位置的影響就微乎其微了,直接以 v

vv 為第一關鍵字,a

aa 為第二關鍵字,idid

id為第三關鍵字排序。k=1

k = 1

k=1 的直接求最大值,這是 o(n

)o(n)

o(n)

的。對於其它的資料,可以呼叫 stl 的強大函式 nth_element,它可以 o(n

)o(n)

o(n)

求第 k

kk 大。我的做法就是想 sort 暴力衝不過去,所以我離線,對於相同時間的乙個 sort 搞定,然後直接衝。

ppt 中給了另乙個做法,說是將詢問離線,因為兩個人之間追趕只有一次,因為不同一次函式只有至多乙個交點。先按 t=0

t=0t=

0 排序,然後按時間順序從小到大,冒泡一下。注意,冒泡看上去是 o(n

2)o(n^2)

o(n2

) 的,但我們只交換相鄰兩個數,你考慮把乙個數往前移動,肯定是連著移動的,如果某乙個位置不行了就直接退出迴圈,所以不是立方。

類似的題是讓你回答前若干次的追趕。

先按 t=0

t = 0

t=0 排序,數學建模一下,把每個人看成一條直線,那麼你求出相鄰兩個追趕的時間,也就是聯立方程,那麼用堆維護一下,注意這裡追趕一定先在相鄰兩個人之間發生,所以加進堆中的是配對。

翟佬的話如醍醐灌頂,其實暴力能過很大原因在於你上一次排好序了,這一次只是微微調整。

這個四次方暴力海星,就是乙個區間 dp 吧。顯然先把序列倒序,每個元素都減去 1

11,這樣價值是字首的乘積。我賽時到這,就沒往下想了,臻可惜。

然後應用乙個結論,你選的一定是一段長為 1

11 的和另一段長為任意值的,那麼就是個 o(n

m)o(nm)

o(nm

) 的。

略證一下,你考慮 a 選了 x

xx 和 y

yy,b

bb 選了一堆數是乙個 k

kk,有

( x+

y)×k

=x×k

+y×k

(x + y) \times k = x \times k + y \times k

(x+y)×

k=x×

k+y×

k那麼把 x

xx 和 y

yy 拆開都相等了,給別的數用何樂而不為呢。

出題人:這道題我設定了兩個沒有 n=2

n=2n=

2 的點,我多涼心。

wyz:這比賽除了寫掛還有人能不阿克?

戚哥 rk 1

S2考前綜合刷題營Day2

一條平直的公路上有 n 個小路燈,第 i 個路燈的座標是 a i 小 a 需要把其中的 k 個點亮,使得每個小路燈與距離最近的被點亮的小路燈的距離的最大值最小。求這個最小值。第 1 行 2 個正整數 n,k 接下來 n 行,每行乙個整數 a i 表示第 i 個小路燈的座標,保證 a i 是嚴格單調遞...

清北考前刷題day1早安

立方數 cubic time limit 1000ms memory limit 128mb 題目描述 lyk定義了乙個數叫 立方數 若乙個數可以被寫作是乙個正整數的3次方,則這個數就是立方數,例如1,8,27就是最小的3個立方數。現在給定乙個數p,lyk想要知道這個數是不是立方數。當然你有可能隨機...

Leetcode刷題之旅(Day2)

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...