2023.4-2023.5 水題記錄 (持續更新)

擺爛了屬於是.

1. P4071 [SDOI2016]排列計數

錯排板子, 顯然答案爲 \(\dbinom{n}{m}D_{n-m}\), \(D_k\)m 爲錯排數.

2. P5104 紅包發紅包

連續型隨機變量入門題. 本人不太熟練, 寫一下過程.

根據題中條件, 抽到錢數在 \([0,x](x\in[0,w])\) 間的概率爲 \(\dfrac{x}{w}\). 求導得概率密度函數

\[f(x)=\begin{cases}\dfrac{1}{w},&x\in[0,w]\\0,&\text{otherwise}\end{cases} \]

故抽一次得到錢數的期望爲

\[E_1(w)=\int_{-\infty}^{+\infty}xf(x)\mathrm{d}x=\int_{0}^{w}xf(x)\mathrm{d}x=\dfrac{w}{2} \]

抽第 \(k\) 次時, 枚舉第一次抽到的錢數 \(x\), 並且根據抽 \(k-1\) 次即 \(E_{k-1}(w)\) 的結果, 有

\[E_k(w)=\int_{0}^{w}E_{k-1}(w-x)f(x)\mathrm{d}x \]

數學歸納易證 \(E_k(w)=\dfrac{w}{2^k}\).

3. CF1333E Road to 1600

這題是怎麼紫的?

顯然 \(n=2\) 不可能; 對 \(n=3\) 我們可以構造:

\[\begin{matrix} 2 & 8 & 7\\ 3 & 4 & 6\\ 1 & 5 & 9 \end{matrix}\]

大概思路是把後繞到最後一步需要馬步, 然後試着讓車能一次走完.

對於更大的 \(n\) 就簡單了, 直接在外面繞圈就行了.

4. CF717E Paint it really, really dark gray

實際上很簡單. 直接 dfs 就行, 如果當前點顏色不正確就和父親結點反覆橫跳一下 (對於根結點就是隨便找一個子結點跳來跳去, 反正路徑不要求在根結點結束)

5. CF1534D Lost Tree

這種東西應該是套路題, 但是我沒見過.

首先欽定 \(1\) 爲根詢問一下, 按照深度奇偶將點分爲兩部分.

然後實際上距離這個條件就沒啥用了. 我們取兩部分中更小的一部分, 直接找出來和它們直接相連的點就能還原整棵樹的形態.

6. CF938E Max History

數數題.

發現這是個嚴格遞增的爬坡求和 (不算最後一個元素), 我們考慮每個元素的貢獻.

我們數出來嚴格比 \(a_p\) 小的數的數量 \(k_p\), 枚舉 \(a_p\) 前放的數的數量有

\[\sum\limits_{i=0}^{k_p}\dbinom{k_p}{i}i!(n-i-1)! \]

化簡式子作爲練習, 最後算出來得 \(\dfrac{n!}{n-k_p}\), 求和即可.

7. P5752 [NOI1999] 棋盤分割

衆所周知方差=平方的平均數-平均數的平方, 均方差再開根號.

只需要讓平方的平均數最小. 這個可以直接無腦 dp 掉.

(具體狀態轉移如下)

inline int s(int xa,int ya,int xb,int yb)
{
	return sum[xb][yb]-sum[xb][ya-1]-sum[xa-1][yb]+sum[xa-1][ya-1];
}
inline int sq(int xa,int ya,int xb,int yb)
{
	return s(xa,ya,xb,yb)*s(xa,ya,xb,yb);
}
inline int maxc(int xa,int ya,int xb,int yb){return xb-xa+yb-ya;}
int dfs(int xa,int ya,int xb,int yb,int c)
{
	if(f[xa][ya][xb][yb][c]!=inf)return f[xa][ya][xb][yb][c];
	if(c==0)return f[xa][ya][xb][yb][c]=sq(xa,ya,xb,yb);
	for(int xx=xa;xx<=xb-1;xx++)
	{
		if(maxc(xa,ya,xx,yb)>=c-1)
			f[xa][ya][xb][yb][c]=min(f[xa][ya][xb][yb][c],sq(xx+1,ya,xb,yb)+dfs(xa,ya,xx,yb,c-1));
		if(maxc(xx+1,ya,xb,yb)>=c-1)
			f[xa][ya][xb][yb][c]=min(f[xa][ya][xb][yb][c],sq(xa,ya,xx,yb)+dfs(xx+1,ya,xb,yb,c-1));
	}
	for(int yy=ya;yy<=yb-1;yy++)
	{
		if(maxc(xa,ya,xb,yy)>=c-1)
			f[xa][ya][xb][yb][c]=min(f[xa][ya][xb][yb][c],sq(xa,yy+1,xb,yb)+dfs(xa,ya,xb,yy,c-1));
		if(maxc(xa,yy+1,xb,yb)>=c-1)
			f[xa][ya][xb][yb][c]=min(f[xa][ya][xb][yb][c],sq(xa,ya,xb,yy)+dfs(xa,yy+1,xb,yb,c-1));
	}
	return f[xa][ya][xb][yb][c];
}

8. CF1375G Tree Modification

神祕題.

仔細觀察操作影響, 發現這個操作實際上是將樹黑白染色後將其中一個點反色了.

因爲菊花圖是一個白點 \(n-1\) 個黑點, 故操作至少需要 \(\min\{x,y\}-1\) 步, \(x,y\) 分別表示兩種顏色的點的數量.

實際上這麼多步就足夠了, 因爲若一種顏色 (不妨設爲白色) 的點數大於一, 我們總能找到一個黑點連接兩個白點, 將三點作爲 \(a,b,c\) 操作即可.

9. P2048 [NOI2010] 超級鋼琴

典題.

對於 \(k=1\), 給定一個左端點 \(x\), 限制區間長度爲 \([l,r]\) 時, 答案即爲

\[\max\{s_i\}-s_{x+l},i\in[x+l-1,\min\{n,x+r-1\}] \]

其中 \(s_p\) 是前綴和. 通過 ST 表我們能 \(O(n\log n)\) 預處理, \(O(1)\) 取用答案.

對於一般的 \(k\) 實際上只需稍作改動. 將所有的答案扔到堆裏面每次取最小值就完事了. 每次取出時將 \((x,l,r,p)\) 分裂成 \((x,l,p-1,p_1)\)\((x,p+1,r,p_2)\) 即可. (其中 \(p\) 是答案的右端點, 可 \(O(1)\) 計算; 分裂是爲了只把已經取用的答案去掉)

10. CF383C Propagating tree

簡單題. 跑 dfs 序然後區間操作就完事了.

具體地, 對於深度爲奇數的點記錄的是減量, 對於深度爲偶數的點記錄的是增量. 增加值的時候, 如果增加的是偶數就正常加, 增加的是奇數就加相反數.

11. CF235A LCM Challenge

水題, 當 \(n\) 爲偶數顯然 \(n(n-1)(n-2)\), 當 \(n\) 爲奇數在 \((n-1)(n-2)(n-3)\)\(n(n-1)(n-3)\ (3\nmid n)\) 裏面選較大的一個.

12. CF1396B Stoned Game

有趣博弈論.

首先如果有一堆比其他堆的和都多, 先手直接佔住就必勝.

因此雙方都需避免該種情況的出現, 此時每次取可以取的最多一堆一定是不劣的.

結果是最後所有石子都被取完, 根據石子的奇偶性判斷勝負.

13. [ARC127C] Binary Strings

找規律題, 把字典序和排名列出來很容易就能發現規律.

具體地, 首先開頭一位一定是 \(1\), 並將排名減 \(1\). 接下來重複操作:

  • 若排名的最高位 (帶前導零) 是 \(0\), 則下一位是 \(0\), 去掉最高位並減 \(1\).
  • 否則下一位是 \(1\), 去掉最高位, 無需減 \(1\).
  • 如果某次減 \(1\) 後變成了 \(0\), 那麼立即結束.

說起來太抽象了, 列個表.

image

(好像還是很抽象)

14. CF1415D XOR-gun

首先這個序列是非嚴格單增的.

然後注意到一個很強的性質: 如果有三個相鄰位最高位爲 \(1\), 直接把後面兩個合起來就破壞掉了.

結合單增和數值範圍, 我們發現當 \(n>60\) 時必然可以用一步破壞!

於是對 \(n\leqslant 60\) 預處理前綴異或和暴力枚舉就完事了.

15. CF1349B Orac and Medians

有用技巧: 遇到中位數要想賦值 \(-1/1\).

這個題將小於中位數的賦爲 \(-1\), 大於等於的賦爲 \(1\).

注意此時如果有一個長度大於 \(1\) 的區間和大於 \(0\), 可以一次操作把它全推成 \(1\), 然後每次在邊緣擴展一個就能全賦成中位數.

於是只需求最大子段和 (判掉單獨的 \(1\)) 即可.

注意判掉 \(n=1\) 和中位數不存在的情況, 樣例相當良心.

16. CF1325D Ehab the Xorcist

神祕構造. 因爲異或是不進位加法, 有 \(u\leqslant v\)\(u,v\) 同號.

\(d=u-v\). 然後會神奇地發現 \((\dfrac{d}{2},\dfrac{d}{2},v)\) 就滿足要求.

但是有些情況完全可以做到 \(2\). 我們下面證明若存在長爲 \(2\) 的構造, 則它是唯一的.

(咕咕咕)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章