辣鸡咯..
noip打的是真的菜.. 退役選手可能要失去各種wc的機會了..
哎爭取多一次wc的機會吧(flag)
來看看做了多少?
56/150
Codeforces Round #443 (Div. 1)
B. Teams Formation
依次縮去$m-1$個間隔中的相同的東西,最后剩下的再搞就行了
*C. Tournament
假如A能贏B,就在圖中建立A->B的邊,那么一個人要是能誰都贏,就是它能到達所有其他點
現在就是要動態維護這個強連通分量
發現這個圖不會存在大于等于三且中間沒有邊的環,也就是對于一個點對一定會存在邊
然后發現縮完強連通分量之后可以拉成一條鏈
每次加入一個點,找出最小的能戰勝它的和最大的戰勝不了它的,把中間全部合起來
這樣就很棒了
*D. Magic Breeding
想象如果這個題只存在$1$和$0$,最多只有$2^k$種不同的特征,這個問題就可以用bitset很好的做出來了
現在把每一列拆成$k$個點,表示他是否大于等于該列第$i$個數,然后就相當于上面的題了
可能復雜度比較大,但是就是能過,畢竟$O(frac{q2^kk}{32})$
[2017.11.21]
發現自己不用退役真的很開心啊..
沒想到有人已經自大到這種地步了啊..
4291: [PA2015]Kieszonkowe
掃一遍就好了
4236: JOIOJI
掃一遍用map維護$(s1-s0,s2-s1)$的最遲出現位置來dp
[2017.11.22]
4260: Codechef REBXOR
用trie找異或起來最大的
4247: 掛飾
發現只跟鉤子個數有關,然后就很好dp了
[2017.11.25]
4237: 稻草人
cdq再維護兩個單調棧即可
4245: [ONTAK2015]OR-XOR
考慮最后答案在二進制的第$i$位,如果要讓它為$0$,那么就需要斷某些點
從大到小考慮這個用bitset維護一下就好了
4241: 歷史研究
分塊sb題
[2017.11.28]
真的是越來越辣雞了.. 線性基都不會了..
4292: [PA2015]Równanie
枚舉$f(n)$即可
4276: [ONTAK2015]Bajtman i Okr?g?y Robin
可以線段樹優化建圖跑費用流
也可以貪心來跑匈牙利
跟yyl學到了一種$O(n^2)$的做法:
定義$f_x$表示選$x$的人最遠的右端點在哪
*4269: 再見Xor
做出線性基就可以求出最大值
然后次大值就看哪一位選的和最大值不一樣就好了
[2017.11.29]
今天狀態還好吧..
4216: Pig
把它$20$個分一塊就行了
4278: [ONTAK2015]Tasowanie
一開始太想當然,后來仔細想想就是個后綴數組裸題..
%%%王隊長其實可以貪心
只要一段是單調不升的,就可以整段拿出來
[2017.11.30-12.1]
昨天忘記寫了..
天天犯sb錯誤,inf又沒開大
4238: 電壓
跟4424差不多
4289: PA2012 Tax
把邊看成點,然后連到同一個點的按照邊權排序
大的往小的連$0$,小的往大的連邊權差
4282: 慎二的隨機數列
類似于普通的最長上升子序列
4293: [PA2015]Siano
容易發現相對大小不會改變
就可以用線段樹維護了
[2017.12.3]
4205: 卡牌配對
把原問題轉成找至少兩個不互質的
然后就增加$3 imes 46 imes 46$個節點就可以跑網絡流的
dinic奇快無比??
*4239: 巴士走讀
把邊看成點跑類似最短路的東西
md怎么這么多沒有用的邊..
[2017.12.4]
4264: 小C找朋友
hash一下就好了
4275: [ONTAK2015]Badania naukowe
找出$a$、$b$串中所有$c$出現的位置
dp一個前綴和后綴就行了
*4204: 取球游戲
很容易想到$O(n^3log inf)$的做法
然后發現那個矩陣比較特殊每一行都是前一行右移一位
所以只維護第一行就行了
4281: [ONTAK2015]Zwi?zek Harcerstwa Bajtockiego
很水啊..
[2017.12.5]
今天效率并不高..
4296: [PA2015]Mistrzostwa
從度數小的點開始刪,刪剩下的就是聯通塊的大小了
4231: 回憶樹
把詢問拆成三塊,中間那塊可以暴力搞
剩下的維護ac自動機的fail樹,詢問就是統計子樹和
*4298: [ONTAK2015]Bajtocja
啟發式合并,hash維護每個點每層所屬聯通快
4294: [PA2015]Fibonacci
找規律發現$60$、$300$、$1500$、$15000cdots$
然后寬搜一下
不知道為什么wa了啊..
[2017.12.6]
效率是真的低.. 但是還是先治病吧..
3261: 最大異或和
可持久化trie裸題
4212: 神牛的養成計劃
一直在想怎么排序字符串
想到后面發現要用到trie就不如直接在trie上排序
排序后對于詢問的前綴就是一段區間
再找后綴就是可持久化trie的裸題了
4285: 使者
cdq裸題??
[2017.12.7]
*4206: 最大團
最大團是npc hard的啊..
過每個點做切線,每個點相當于覆蓋一條弧
不滿足條件當且僅當覆蓋的區間相離或者包含
現在要選若干個點使得兩兩互相有交集
又發現一個點取它在弧上的補集是不會影響答案的
把覆蓋掉$(r,0)$的點取補集
就可以把問題轉化成選取若干條線段使得
$$l_1<l_2<l_3<cdots<l_k<r_1<r_2<r_3<cdots<r_k$$
把它按照左端點排序,就可以通過做最長上升子序列來計算答案了
但是這樣做難免會選到包含的
于是我們枚舉一個讓它必須選,然后剔除掉被它包含的所有線段再做就沒事了
這樣復雜度是$O(n^2logn)$的
4660: Crazy Rabbit
三倍經驗
3663: Crazy Rabbit
三倍經驗
cf575A. Fibonotci
$n$個$n$個做,修改的用線段樹維護
cf575B. Bribes
開$nlogn$個節點維護答案
*cf575G. Run for beer
最短路,然后反著維護..
不得不說細節是真的多
[2017.12.8-9]
*4230: 倒計時
設$f_{i,j,k}$和$g_{i,j,k}$分別表示$****9999x$這個數有連續$i$個$9$,前面最大的數是$j$,個位是$k$使得前面退位的步數和退完后的個位是啥
然后再從原數利用dp數組減就行了
4209: 西瓜王
主席樹裸題
4297: [PA2015]Rozstaw szyn
dp,然后可以得到每個孩子節點取值的范圍
然后掃一遍即可
4262: Sum
線段樹裸題
[2017.12.10]
慘了現在沒有數據都不會查錯了..
晚上做了一場atcoder.. md均攤$O(n)$的都沒發現..
4246: 兩個人的星座
發現一對三角形有且僅有兩條公切線
然后就枚舉一個點,剩下的點按照極角排序掃一遍就行了
憑什么把重載運算符放在結構體內就快這么多啊..
4277: [ONTAK2015]Ci?cie
挺容易想到的dp吧
[2017.12.11-12]
做題極其不順,很難受
*4233: [Cerc2013]Captain Obvious and the Rabbit-Man
消元找規律,發現消出$a_i$的系數剛好是$(x-f[1])(x-f[2])(x-f[3])cdots(x-f[i-1])$的系數
然后我就被卡常了
然后想想發現每次減去前一行乘上$f_{i-1}$也是可以消的..
*4248: AAQQZ
真尼瑪難做
枚舉一個最長回文串然后兩邊展開就行了
細節真的多
4280: [ONTAK2015]Stumilowy sad
線段樹裸題??
*4207: Can
分治然后兩邊展開
3721: PA2014 Final Bazarek
4209弱化版
4250: [PA2014]Bazarek
同上
[2017.12.13-14]
磨出了一道題真的棒..
*3716: [PA2014]Muzeum
把它坐標拉伸使得每個警衛看到的是一個九十度的角
然后再把整個圖旋轉九十度
根據最小割模型連邊,發現就是警衛連到手辦的最大流
然后就用按$x$坐標排序,用set維護$y$坐標進行貪心就好了
4251: [PA2014]Muzeum
同上
*4271: chemistry 化學
先放一個kpm的鏈接以表尊敬
里面有一句超有道理的話
假如兩棵無根樹同構,那么以各自的重心作為根的有根樹也同構
一開始還打算枚舉最長鏈然后burnside一下的..
然后發現這樣做是$O(n^3)$,用fft優化可以做到$O(n^2logn)$
但是要高精度,這樣的做法就會T掉
然后看到kpm這句話感覺很有道理,就從重心開始dp,每個節點最多只有$3$個孩子,再讓根的子樹都小于等于$dfrac{n}{2}$就好了
但是還有一種情況是有兩個重心的..
這種情況發現可以加一個點在兩個重心之間就沒問題了..
然后再套上高精度就perfect了..
[2017.12.15-17]
很棒搞出了Voronoi圖和Delaunay三角剖分
*4219: 跑得比誰都快
上述
3007: 拯救小云公主
上題弱化版,可以$O(n^2)$做..
5091: 摘蘋果
發現無論多少次在某個點的概率都一樣..
就隨便搞搞行了..
[2017.12.18-22]
不知不覺又拖更了..
然后發現自己啥都沒做天天頹..
2393: Cirno的完美算數教室
xjb爆搜.. 從大到小枚舉會快
*3622: 已經沒有什么好害怕的了
把兩邊排序
$f_{i,j}$表示前$i$個至少有$j$對左邊大于右邊的方案數
$g_i$表示恰好有$i$對左邊大于右邊的方案數
$g_i=sumlimits_{k=i}^nC_k^if_{n,k}$
然后就行了
2916: [Poi1997]Monochromatic Triangles
所有-不合法的就行了
*4361: isn
$f_i$表示長度為$i$不降子序列的個數
那么答案就是$sumlimits_{i=1}^n(f_i imes(n-i)!-f_{i+1} imes(n-i-1)! imes(i+1))$
5083: 普及
用單調棧可以求出以每個位置為開頭、結尾最遠的點
然后就用線段樹搞搞就行了
有另一種做法,$O(n)$RMQ可以把復雜度優化到$O(n)$,可惜我不會qaq
*5097: 實時導航
詢問的時候跑最短路,用bitset維護堆操作來優化就可以做到$O(qdfrac{n^2}{32})$了
具體來說就是開$4$個bitset,維護已經出堆的點和在堆內的點的最短距離的點集
5004: 開鎖魔法II
發現這個圖是個基環內向樹,他的葉子節點是全都要選的
然后$f_{i,j}$表是前$i$個聯通塊選$j$個節點最后全部搞定的方案數就沒了
沒想到double存$300$的組合數都可以啊..
5003: 與鏈
每一位分開看就是個多重背包..
*5005: 乒乓游戲
線段樹維護覆蓋某個區間的所有點
每次新來一個就看左右端點被哪些區間覆蓋
用并查集合并下就行了
*5011: [Jx2017]顏色
很像之前做的一道coci的題目..
就是找把一個圓拆成兩半且同一種顏色都在一邊的方案數
hash一下..
hash值相同的就可以斷開了..
Codeforces Round #453 (Div. 1)
A. Hashing Trees
連續兩個大于$1$就不合法了啊..
C. Bipartite Segments
出現一個奇環就說明包含某個區間的區間都是不可取的..
維護每個點最遠到達的點
離線詢問
按詢問右端點排序即可..
*D. Weighting a Tree
建出生成樹,發現偶環不影響
對于一個奇環,選任意一個點做根,發現根多出來$s$,那么環邊就兩端同時減去$s/2$
再來做即可
對于$s$為偶數的證明:
因為度數和點權奇偶性相同,總度數和總點權奇偶性也相同
也就是總點權為偶數,那么多出來的$s$也為偶數
總結
- 上一篇: Android OpenCV集成摄像头图
- 下一篇: odu恢复delete 表