原创 POJ2299 Ultra-QuickSort(樹狀數組求逆序數)

用樹狀數組。 看題意,它要求排序的次數……我一開始想的是……這TM不就是冒泡排序…… 直接上冒泡啊,排一次cnt ++ 多簡單…… 事實無情的給了我響亮的一巴掌……啊!多麼年少無知天真無暇的我啊…… 事實就是這TM會TLE……

原创 HDU 1004 Let the Balloon Rise(Map)

數據統計的題目麼…… 規定要用map ,就用了…… map的特殊之處在於其可以用string之類的數據類型來做序號,從而可以達到自制定義數組的要求。 本題就是構造的一個<string,int>的map。 然後遍歷一遍就行了。 最後A

原创 HDU1556 Color the ball (樹狀數組)

一條簡單的樹狀數組題目,先寫好lowbit , update, sum三個函數。 考慮到sum函數只能求 從1 到某點的總和,所以需要更新兩次,更新是隻能更新從某點到最後的 , 這樣的話,先update(a,1) ,然後再 update

原创 POJ3067 Japan(樹狀數組)

不妨將某條橋的左斷點設成x  ,右端點設成y 。 先將這些橋按照x 排序, x相同時按照y 排序。 這樣的話和數星星那題就很像了。  對於某一條橋,我們只需要考慮它之前的y 座標比它大的的橋的個數, 這樣用逆序數就行 ,即可以用i -

原创 POJ2155 Matrix (二維樹狀數組)

嗯……二維樹狀數組哦親~~~ 還行吧,只是update 函數和sum 函數的略微變化。 注意到sum還是求 從(1,1)點到(x,y)點的總和,所以求某一區域的和的時候需要四次求和。 AC Memory : 4632 KB   Ti

原创 使用bitset實現二進制和十進制的相互轉換

一、相互轉換 注意由於bitset<Size> bs(num);中的Size必須爲常數,所以去前導0比較麻煩。 #include<cstdio> #include<cmath> #include<cstring> #include<cst

原创 POJ2352 Stars(樹狀數組)

和之前那個Japan 那題差不多,而且這個還給排好序了。。。贊! 這樣的話 ,只要比較x座標, 因爲y是排好的,後面的點不會對前面的點產生影響。 這樣,還是求逆序數。 AC Memory : 908 KB     Time : 391

原创 POJ 1002 487-3279(Map)

可以用Map來求解,很重要的一點就是C++的Map會按照key的字典序來自動排列數據。 這樣就大大簡化了,至少少了排序的一步。 一開始我用的是Map<string, int> ,不得不說轉換成數字存儲的時候是比較簡單,但是也慢多了。顯

原创 POJ 2376 Cleaning Shifts (貪心算法)

這是一條 關於貪心算法的題目。 重點是特殊點的判斷問題,第一種是沒有開始點,即沒有開始點爲1 的。第二種就是沒有結束點,即沒有終點爲T 的。 顯然這兩種都是應該輸入-1的。 然而還有另外一種情況,可以看一下 這種樣例: 3 10 1

原创 HDU 4022 Boming (Map , multiset)

一眼望去……好麻煩的樣子…… 只會一一對應啊怎麼破怎麼破【好愁人啊、、、 然後,想想,是不是不要用map 做呢……看着對面的Empty大神,我默默放下了這種想法…… 可是還是不會啊。。。Map同志的一對多【臣妾做不到啊啊啊啊……

原创 HDU4717 :The Moving Points(三分法)

題目: 給出N個點,給出這N個點的初始位置和速度,求在什麼時候他們之間的最大距離最短。 思路: 考慮時間,設在某個時間點的時候他們的最大距離最短。 可得得出求距離的公式……其實就是兩點間距離的那個公式……求出所有的點之間的距離的最大,

原创 動態規劃分析總結——如何設計和實現動態規劃算法

進行算法設計的時候,時常有這樣的體會:如果已經知道一道題目可以用動態規劃求解,那麼很容易找到相應的動態規劃算法並實現;動態規劃算法的難度不在於實現,而在於分析和設計—— 首先你得知道這道題目需要用動態規劃來求解。本文,我們主要在分析動態

原创 Uva 257: Palinwords(Hash)

首先鳴謝程大神的指點…… 題意: 求一個字符串裏面有幾個不同的迴文,可以交叉不能覆蓋,大於等於兩個就把那個字符串輸出。 明顯用HASH。。。本來以爲要求每個字母對應的的所有的hash。。。判斷迴文還需要正一遍hash 反一遍hash

原创 Uva 10887:Concatenation of Languages(Hash)

被Hash虐殘了……深跪…… 這題用一個next數組和一個head數組形成了一個類鏈表結構,確保組合形成的字符串不重複。 判斷字符串是否相同用的是Hash算法,這是處理字符串的五大神器。。。屌炸天的感覺。。。 AC Memory :

原创 POJ3258:River Hopscotch(二分法)

這題是求一個最大的最短距離。 如果遍歷的把每一段距離都求出來……然後再暴力得比較的話,可能會超時吧。。。 然後既然是二分的訓練……那就只好用二分了。 二分,把起點位置作爲左端點,把總長度,也就是終點作爲右端點。當然一開始要把rock