原创 hdu5290 Bombing plan(樹DP)

題意:給一棵樹,邊長都是1,每個點有個點權w[i],表示這個點能覆蓋與其距離多遠的點。選最少的點覆蓋樹上所有點。N<=10W, w[i]<=100. 樹DP好久都沒練了,並且感覺以前也不是特別擅長寫樹DP,見的模型也不多。以前的樹DP基本

原创 【bzoj3171】[Tjoi2013]循環格 (費用流)

題意:N*M的矩陣,每個格子有一個LRUD標記表示走到這個格子後下一個格子往哪個方向走。走出邊界後自動到另一端。問至少修改幾個格子使得在任意一個格子上開始都可以最後回到自身。N,M<=15. 這個15真是迷一樣的數據範圍。。搜的話太大了,

原创 [BZOJ4383][POI2015]Pustynia (拓撲排序)

題意:給定一個長度爲n的正整數序列a,每個數都在1到10^9範圍內,告訴你其中s個數,並給出m條信息,每條信息包含三個數l,r,k以及接下來k個正整數,表示a[l]...a[r]裏這k個數中的任意一個都比任意一個剩下的r-l+1-k個數大

原创 BZOJ1858 序列操作 [treap,避免雙標記的特殊技巧]

題意:給一個01序列,有5種操作: 0 L R 將[L,R]之間的數字都變成0; 1 L R 將[L,R]之間的數字都變成1; 2 L R 將[L R]之間的數字都取反; 3 L R 詢問[L R]之間1的個數; 4 L R 詢問[L,R

原创 [BZOJ4381][POI2015]Odwiedziny (樹鏈刨分/倍增)

題意:給定一棵樹,邊長爲1,點帶權。處理M個詢問,格式爲u,v,c,求從u走到v每次跳c步經過的點權之和,最後一步若不足c條邊則直接走到v。N,M<=5w。 分成c>=sqrt(N)和c<sqrt(N)兩種情況處理。若c>=sqrt(N)

原创 將二叉樹從host端拷貝到device端 [CUDA]

這次圖形學大作業中需要把一棵kdtree從主機端拷貝到GPU中,通過一些摸索實現了這部分代碼,分享一下。 首先需要學習如何拷貝結構體,這個網上有很多博客介紹,就不贅述了。要點是中間變量的使用,因爲不能直接訪問device端結構體的成員,所

原创 寒假期間出的兩個有意思的數論題

這個博客很久沒更新了,我不希望它淪爲殭屍博客。。所以今天更新一下,近期沒有比較好的素材,於是就隨便寫了。還是關於OI題目的。也許以後會更cs相關的? 寒假期間給學弟出了一套數論題,一共四道,其中有兩道是我覺得比較創新或者不錯的,於是放在最

原创 【UOJ #210】【UER #6】尋找罪犯 (2-SAT)

考試的時候死磕第一題去了,這個題沒多想,其實是個裸題。。 2-SAT模型顯然,注意要對每個人是否是騙子,每句話是否是真話都要建點,然後暴力連邊裸上就可以得40分了。瓶頸在於這種關係:若一個人說的某一句話是假話,則他說的其它話都是真話。這個

原创 【cf666e Forensic Examination】(後綴自動機+線段樹合併)

這個題確實思維方向非常重要! 如果用後綴數組做,就轉化爲區間衆數,一臉不可做。(當然莫對+堆還是可以的。。) 這個題應該用後綴自動機或者後綴樹來做。這樣問題就是子樹衆數,就可以用線段樹合併一個log搞定。(爲什麼我一個log比別人一個lo

原创 [Noi2016十連測第二場]幻想(後綴平衡樹)

題意:給一個字符串,三種操作,末尾插入一個字符,彈出末尾的字符,查詢區間內一個給定字符串出現了多少次。 卡常神題。。500萬的數據規模什麼鬼。。 假如沒有區間限制,就是後綴平衡樹的裸題。查詢一個字符串s出現了多少次,就是在後綴平衡樹上找出

原创 [BZOJ2161]布娃娃(掃描線+線段樹)

題意:若干個點,對每個點求能覆蓋住它的線段的權值的第k大。 強制在線的題做多了,作死寫了個主席樹套平衡樹,兩個log常數炸了,只得了40分暴力分。 正解顯然掃描線+線段樹,把每個線段拆成起點和終點,代表插入和刪除,線段樹維護第k大權值就好

原创 [BZOJ4605]嶗山白花蛇草水(主席樹套kd-tree)

題意:兩種操作,在二維平面插入一個點及其權值,查詢矩形區間第k大,強制在線。 之前考試考過一個矩形區間第k大的題。。當時想了各種樹套樹套樹,算了算複雜度都沒有暴力快。。後來憋了個kd-tree套主席樹,就是把若干個kd-tree上的節點上

原创 [BZOJ2162]男生女生(二分圖帶權獨立集+dp)

題意:懶得寫了,比較麻煩。 強行嵌套的題真沒意思。。 開始我看見數據範圍n=50,第一問求什麼完全子圖,我以爲是個搜索減枝,然後第二問那個dp我想了想,列了幾個方程發現不是很對,然後又沒有部分分,我就棄療了。。 其實想一想應該是想得出來的

原创 【UOJ #209】【UER #6】票數統計

做比賽的時候完全沒想到怎麼處理同時有前綴和後綴的限制。。智商不夠啊QAQ。。其實根據數據範圍就能猜出來,因爲直接做的複雜度O(n)很明顯n不可能給5000,所以應該枚舉一下總人數,這樣對後綴的限制就轉化爲對前綴的限制了。。然後x=y的限制

原创 [BZOJ3864]Hero meet devil(狀壓dp)

題意:給一個長度<=15的串S(僅包含ACGT),對於所有的i(0<=i<=|S|),求有多少長度爲M的串T滿足串T和串S的最長公共子序列長度爲i。 這個題讓我想起了之前做過的一個數位dp,問有多少個數的數字組成的最長上升子序列長度爲x。