原创 CodeChef BTREE Union on Tree

vj 這題的數據限制不難想到要套一個虛樹.對於一個詢問,我們先把包含所有關鍵點的虛樹建出來,然後預處理虛樹上每個點的最大覆蓋範圍,具體操作是一遍dfs由兒子更新父親, 即\(va_x=\min(va_x,va_y-dis_{x,y})\)

原创 CF538H Summer Dichotomy

cf 如果我們把題目裏的邊連出來以後出現了奇環就一定無解,否則我們對於每個連通塊,先黑白染色,然後把同色的區間求交,合併成一個區間(如果是一個孤立點就加入 \([-\infty,+\infty]\) 作爲這個和孤立點區間對立的區間),把得到

原创 CF559E Gerald and Path

cf 兩回啊兩回... 不妨先將所有線段按照端點從小到大排序,並假設只能往右放,然後強行套上一個dp\(f_{i,j}\)表示放完前\(i\)個線段,最右覆蓋到\(j\)的答案,轉移時枚舉下一條放進來的線段,因爲現在是隻往右放,所以只能去覆

原创 WC2015-2019

代碼自己去uoj上看,懶得放鏈接了( 2015 k小割 強 行 三 合 一 前10分爆搜割集,然後check即可 後面40分,大概所有不是源點匯點的點都和源點有邊,和匯點有邊,那麼每個點連的兩條邊要選一條/兩條割.設其中較小權值爲\(a\

原创 luogu P4217 [CTSC2010]產品銷售

luogu 題目給的東西可以搞成一個匹配模型,然後我們先把費用流的圖建出來 \(s->i\),流量\(d_i\),費用\(0\) \(i->t\),流量\(u_i\),費用\(p_i\) \(i->i+1\),流量\(\infty\),費

原创 luogu P4593 [TJOI2018]教科書般的褻瀆

luogu 這題怎麼沒人用矩乘啊 首先可以發現,這題的 \(k\) ,也就是褻瀆使用次數爲 \(m+1\) ,然後給出的 \(a_i\) 又會把 \([1,n]\) 劃分成至多 \(m+1\) 個連續段。所以對每次褻瀆,一個段 \([l,r

原创 2020年前的一些Fiddlestick

2019年就要過去呢了,這一年裏,不管是誰,都肯定收穫到了很多,亦或是失去了寫什麼,不管怎樣,過去的事情都只能過去了,現在能做的也只有整理總結一下自己在過去的一年中的得與失罷了 時間也是過得賊快,一轉眼就到了高二了,所有機會都只剩下一次了.

原创 CodeChef JADUGAR2 Chef and Same Old Recurrence 2

vjudge 下面構造生成函數\(F(x)=\sum_{i=0}^{\infty} dp(i)x^i\) 根據遞推式,可以列出\(F(x)=AxF(x)+BF^2(x)+kx\),然後移項化簡後可得\(F(x)=\frac{1-Ax\pm\

原创 WC2020「Fantasie」

由於某些不可抗拒因素,這篇文章鴿了

原创 loj 6434「PKUSC2018」主鬥地

loj 最可做的鬥地主系列題(?) 顯然的想法是爆搜可憐的牌,然後接着找是否有合法出牌方案.因爲總的方案數只有幾百萬種,所以可以直接枚舉每種方案 然後是優化check過程.首先可以發現對子三張牌順子連對三順可以拆成若干單牌,飛機可以拆成若

原创 IOI2020只因訓隊作業胡做

w a r n i n g ! 意 識 流 警 告 !!1 不想一個個發了,乾脆直接發個合集得了qwq 感覺這輩子都做不完了\(Q\omega Q\) CF516D 寫過題解了 CF505E 寫過題解了*2 CF555E 首先對於一個邊雙,

原创 CF576E Painting Edges

cf luogu 水一發經驗以防大家都以爲我死了 其實也快了 因爲不是二分圖當且僅當存在奇環,所以考慮對每種顏色維護一個lct,表示這種顏色的邊的連通情況,注意可能會出現一些成環的邊,那就維護這種顏色的,邊權爲刪除時間的最大生成樹,每次加入

原创 loj 2292「THUSC 2016」成績單

loj 看着就很區間dp,所以考慮求\(f_{i,j}\)表示區間\([i,j]\)的答案.注意到貢獻答案的方式是每次選一個連續段,拿走後剩下的段拼起來繼續段,所以轉移就考慮從最後一次選的方法轉移過來,那麼最後一次選的是原序列的一個連續段中

原创 CSP-S2019題解

格雷碼 €€£:我不抄自己辣!JOJO! 這題比那個SCOI的炒雞格雷碼好多了,甚至告訴你構造方法,所以... void wk(uLL kk) { int j=0; for(uLL i=n-1;~i;--i) {

原创 luogu P5023 填數遊戲

luogu loj 被這道題送退役了 題是挺有趣的,然而可能討論比較麻煩,肝了2h 又自閉了,鑑於CSP在即,就只能先寫個打表題解了 下面令\(n<m\),首先\(n=1\)時答案爲\(2^m\),然後打表可以發現,\(\forall i>