原创 HDU-5900 QSC and Master

題目大意: 有n對二元組(key, value),兩個相鄰的元組間如果key的不互質,那麼可以被移除,並獲得兩個元組的value值之和的分數,問你最多能有多少分數。 解題思路: 區間DP 按照最裸的區間DP模型用記憶化搜索寫是要超時的..

原创 HDU-5876 Sparse Graph

題目大意: 給你一個完全圖讓你刪除給出的這些邊形成新的圖,問你在新的圖上的s點到其它所有點的距離。 解題思路: BFS亂搞... 補圖的BFS的問題雖然很經典= =不過確實還是第一次做。很方。 用一個map來保存鄰接的信息。因爲最多200

原创 HDU-5884 Sort

題目大意: 給你n個長度爲ai的序列,讓你把這n個序列合併,每次合併需要一個cost,值爲合併的序列的長度之和,每次最多可以合併k個序列。現在問你,給出cost最大爲T,最小的k是多少。 解題思路: 顯然,可以用優先隊列水一發,複雜度爲n

原创 BZOJ-1010 [HNOI2008]玩具裝箱toy

解題思路: 斜率優化DP 這道題= =嘛算是斜率優化的入門題目了。還是非常經典的感覺。 首先考慮,這道題目有經驗的小夥子一眼就可以想出來狀態轉移方程是什麼。 顯然是 dp[i] = min(dp[i], dp[j] + pow(sum[i

原创 HDU-5895 Mathematician QSC

題目大意: 已知f[0] = 0, f[1] = 1, f[i] = f[i-1] * 2 + f[i-2],且g[n] = g[n-1] + f[n] * f[n],現在給出n,y,x,s,問你x^(g[n*y]) mod (s + 1

原创 入門動態規劃問題

hihocoder這周欠了三題,於是今天一波結束了。然後發現這三個題目似乎都很簡單,並且還是一類問題裏面的。所有就寫成一次的吧。 動態規劃問題,說起來,理論上是每個搞ACM的人都會學的,而且應該是最開始就學的。因爲動態規劃問題是各種各樣比

原创 AC自動機

本來這篇...我是不想寫了的...以及比計劃晚了三天...雖然是因爲考試的原因....不過主要還是由於AC自動機這個算法我也不過是上週日的時候才學會怎麼寫。原理性東西有點了解而已。 所以既然還是決定寫了,那就寫吧。 AC自動機算法(Aho

原创 Trie

今天照例,寫了一發hihocoder,是關於Trie字典樹的,於是順便再複習下字典樹吧。 Trie是一種樹,非常實用的一種樹,使用Trie還可以寫AC自動機。在字符串處理上面有非常好的效率。 首先介紹下字典樹的定義。 在使用C++的時候

原创

本來想着每天一題hihocoder,然後寫博客總結的。不過看起來選的時候不是很好。 作爲學渣的我還是要好好學習應對期末考試的。等期末考試後再繼續吧~ 最近一週計劃: now -> 12月30日  xjb複習(預習) 12月30日晚上22

原创 Hihocoder-小Hi的煩惱

解題思路: 其實題目自帶的題解已經交代的比較清楚了。但是如果完全按照題目自帶的解法來計算,肯定是會超時的。因爲無論如何還是O(n^2)的解法,當然也可能是彩筆我比較菜只能寫出這樣的。 所以需要一些轉換。 這個題目給的內存空間爲1024M,

原创 Manacher算法

最近發生了很多事。博客本來準備用自己搭(想要看的可以訪問www.wilverain.com)的,後來發現不管是wordpress還是hexo都不是很喜歡,於是就又回到csdn了。等以後成爲全棧再自己寫一個吧(劃掉 最近開始刷hihoco

原创 機器學習-決策樹 ID3算法

今天用了一晚上把決策樹的ID3算法擼出來了。 首先推薦一發博客,說的感覺挺靠譜的...傳送門 一、信息熵 高中化學裏面有個概念講的是分子的混亂程度(大概是這個...)。而信息熵就是香農借鑑了熱力學的概念,將信息熵定義爲“離散隨機事件出現

原创 HDU-1588 Gauss Fibonacci

題目大意: 有兩個函數,g[i] = k * i + b,另外一個函數f[i] = f[i-1] + f[i-2],問你從0到n-1的f(g[i])的和。 解題思路: 斐波那契數列有種遞推的思路是: {f[i+1], f[i]; f[i]

原创 KMP算法

KMP算法(Knuth-Morris-Pratt Algorithm)是一種非常高效的字符串匹配算法,是由Knuth,Morris和Pratt三位與1977年發佈的算法。最壞複雜度爲O(n+m) 首先我們用一個例子來演示這個算法: 原串

原创 Hihocoder-1286 子矩陣求和

解題思路: 看到這個題目的時候是很懵逼的= =矩陣是無限的 但是其實沒那麼剛,只需要巧妙的轉換下就可以得到結果。 對於矩陣: 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 2 3 3 3 3 3 3 1 2 3 4