原创 hdu 4027 Can you answer these queries? 線段樹區間修改區間查詢

題目大意: 對線段樹有兩種操作,對連續一段整體開根號,對連續一段整體求和。 分析: 這裏開根號數會越來越小,到1後根號1==1,不變,可以利用這一點。某段maxv<=1後這一段就不用往下更新了,這其實只是剪枝,並沒有lazy標記優化。 還

原创 hdu 5862 Counting Intersections 座標離散化+樹狀數組

題目大意:給你與座標軸平行的線段,問相交點有多少。 我們將與x軸平行的線段分成兩個點,左端點與右端點,與y座標平行的線段取它的x座標作爲一個點,排序。那麼一遍掃過去,遇到左端點,對應的y座標++,遇到右端點對應的y座標--,遇到第三種點,

原创 FOJ 有獎月賽 2016-8 C Problem C Daxia & Suneast's problem

Problem Description daxia和suneast玩起來取石子游戲,現有n堆石子放成一排,每堆石子顆數爲a1,a2,...,an. 然後開始m輪遊戲,每輪遊戲之前,suneast先把第i堆的石子改成x顆,然後雙方開始在第

原创 poj 2777 Count Color 線段樹區間更新

題目大意: 給你兩種操作: 1、給一段連續區間塗顏色。 2、統計某一區間有多少種不同的顏色。 分析: 線段樹區間更新,區間查詢。略坑的一點是要用二進制優化,開始用的vector TLE到死。。。 #include <iostream> #

原创 poj 2406 Power Strings kmp next數組

求字符串最小循環節個數。有後綴數組,kmp的next數組兩種求解方法,這兩種方法的證明過程剛好是互逆的,證明了一種另一種也就證明了。先看後綴數組,假設循環節爲k,那麼s[0]與s[k]表示的後綴它們的最長公共前綴爲n-k,既s[k]這個後

原创 後綴數組之高度數組

加了一點自己對高度數組的理解: height 數組:定義 height[i]=suffix(sa[i-1])和 suffix(sa[i])的最長公共前綴,也就是排名相鄰的兩個後綴的最長公共前綴。那麼對於 j 和 k,不妨設rank[j]<

原创 codeforces 364 div2 D As Fast As Possible

題目大意:一羣小學生從起點走到終點,期間僱了一輛車來載學生,但車可能坐不下那麼多人,問所有學生到達終點最短時間。 最優方案是把第一批學生運到離起點x遠的地方,然後車子返回運第二批,裝着第二批人的車子追上第一批小學生,讓第二批人下車和第一批

原创 hdu 5790 prefix 主席樹

這道題目其實和 spoj上的d-query 差不多  http://blog.csdn.net/mtrix/article/details/52335617, 本質都是統計連續區間不同數個數,本來有 離線+樹狀數組 和在線主席樹 兩種做

原创 HYSBZ 1067 RMQ

題意很清楚,坑點就是l或是r不存在時,要二分去找臨近位置,然後統計這之間的max。 #include <iostream> #include <cstdio> #include <cstdlib> #include <map> #inc

原创 主席樹 poj 2104 K-th Number

主席樹又名可持久化線段樹。 我們先撇開可持久化看看主席樹是怎麼實現的。維護一個長度爲n的序列,我們可以建一顆線段樹來維護,最上的根節點代表的區間是[1,n]。 我們知道線段樹的形態由你給的[l,r],既維護的區間長度決定,現在我要爲這個序

原创 hdu 5875 Function 二分+rmq

按照題意每次到當前點右邊找比當前點小並且最接近當前點的點p。 如果你能在O(1)的時間裏查詢[l,r]區間最小值,那麼就可以二分查找p。 #include <iostream> #include <cstdio> #include <

原创 hihoCoder 1478 水陸距離

描述 給定一個N x M的01矩陣,其中1表示陸地,0表示水域。對於每一個位置,求出它距離最近的水域的距離是多少。   矩陣中每個位置與它上下左右相鄰的格子距離爲1。 輸入 第一行包含兩個整數,N和M。 以下N行每行M個0或者1,代表

原创 ecnu 核反應控制 數學

著名物理學家 Daffy Duck 提出了核反應控制的關鍵理論。 該理論的(玄學)表述是:在一個原子堆中有很多原子量不同的原子,如果原子 A 的原子量和原子 B 的原子量之和,恰好等於原子 C 的原子量,那麼核反應控制難度將急劇增大。

原创 ACM 利用位運算枚舉所有子集

        給集合裏的元素一個順序,那麼就可以用整數表示集合,某一位爲1表示對應元素被選取。         設x爲表示集合的整數,那麼這個整數有如下性質:          x的子集整數y在數值上不會比x大。因爲x的子集y只是保留了

原创 最優比例生成樹

原文:http://www.cnblogs.com/lotus3x/archive/2009/03/21/1418480.html   概念:有帶權圖G, 對於圖中每條邊e[i], 都有benifit[i](收入)和cost[i](