GDKOI2021 Day 1
morning
打了一早上模擬賽,T1一開始想到了方法,確定出現問題的行列然後排除,但是感覺不大行,先去30min把T2的暴力搞定,然後T3搞了搞發現題意理解錯了,然後隨便打了一個小貪心但是還是有問題,應該炸了。T4正解並查集,我打了一個暴力深搜騙點分。
afternoon
先講了半個小時題解。
T1他基本跳過。
T2是從右往左維護單調隊列,二分查找y,然後 a n s = y ∗ ( r − l + 1 ) − ( S [ r ] − S [ l − 1 ] ) ans=y*(r-l+1)-(S[r]-S[l-1]) ans=y∗(r−l+1)−(S[r]−S[l−1])
S數組是前綴和。
T3正解貪心,儘量調整使最小的數在最後合法的匹配中。
設當前最小值爲x,最大值爲y,若 x + y < L x+y<L x+y<L則把x刪掉,若 x + y > R x+y>R x+y>R則把y刪掉。
T4離線之後並查集維護連通塊,查詢大小即可
講座:數論"基礎"
素數
這部分比較簡單,主要是歐拉篩(線性篩)。讓每個合數只被最小質因子篩掉。把前面找過的質數,乘以現在找到的質數,可以求出最小質因子。
判斷: i f ( i / p r i m e [ j ] = = 0 ) b r e a k if(i/prime[j]==0) break if(i/prime[j]==0)break
整除,gcd,lcm
-
若 c ∣ a , c ∣ b c|a,c|b c∣a,c∣b則 c ∣ ( m a + n b ) c|(ma+nb) c∣(ma+nb)
-
若 a ∣ m , b ∣ m a|m,b|m a∣m,b∣m則 l c m ( a , b ) ∣ m lcm(a,b)|m lcm(a,b)∣m
-
a ∗ b = l c m ( a , b ) ∗ g c d ( a , b ) a*b=lcm(a,b)*gcd(a,b) a∗b=lcm(a,b)∗gcd(a,b)
-
l c m ( m a , m b ) = m ∗ l c m ( a , b ) lcm(ma,mb)=m*lcm(a,b) lcm(ma,mb)=m∗lcm(a,b)
-
設 g c d ( a , b ) = d , a = k ∗ b + r gcd(a,b)=d,a=k*b+r gcd(a,b)=d,a=k∗b+r
因爲 d ∣ a , d ∣ k b d|a,d|kb d∣a,d∣kb所以 d ∣ r d|r d∣r
歐拉函數
性質
- φ ( 1 ) = 1 φ(1)=1 φ(1)=1
- 當p爲質數時, φ ( p ) = p − 1 φ(p)=p-1 φ(p)=p−1
- 當p爲質數時, n = p k , φ ( n ) = p k − p k − 1 = ( p − 1 ) ∗ p k − 1 n=p^k,φ(n)=p^k-p^{k-1}=(p-1)*p^{k-1} n=pk,φ(n)=pk−pk−1=(p−1)∗pk−1
還有好多。。。。
應用就是歐拉篩求歐拉函數。
同餘
定義: m m m% a a a= m m m% b b b記爲a同餘b(mod m)
主要有模m剩餘系和既約剩餘系。
剩下放點截圖,自己看
%m控制最小非負整數解
講完了。
evening
瘋狂頹廢。搞了搞博客和ybtoj。