阿克掛 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 輸出 ...