原创 HDU 6215 隊列+鏈表

題意 不斷從一個序列中刪除下降子序列,直到不出現下降子序列。 題解 純鏈表很容易TLE,需要用隊列進行優化。處理的思想是這樣子的,如果我們刪除了某個下降子序列,那麼就有可能存在下降子序列的前一個元素與後面的一些元素組合成一個下降子

原创 HDU 5952 搜索

題意 給一個無向圖,所有點的度小於等於20。問這個圖中有多少個完全子圖。 題解 完全圖就是一個圖任意兩點之間都有邊相連。由於所有點的度都很小,我們可以暴力枚舉完全圖。 枚舉過程首先從1號點開始,然後枚舉與1號點相鄰的點,每次想隊

原创 HihoCoder 1251 BFS預處理

題意 給一堆字符串,問轉換成另一種字符串,最少需要多少步。存在兩種操作,第一種操作是講一個數字轉換爲另一個數字,第二種操作是將一種數字轉換爲另一種數字。 題解 首先說明一下,這道題Uvalive是過不了的,只有Hihocoder能

原创 藍橋杯 合併石子 GarsiaWachs算法

題意 中文題目,不解釋 題解 從DP角度來看,這道題是非常有難度的。普通的DP就只能過90%的數據,貌似正解需要用到四邊形優化。。。不過呢,有一位叫GarsiaWachs的大牛提出了一套算法,可以在O(N^2)的複雜度下解決這個問

原创 HDU 6002 貪心

題意 每個人有一個排行榜,目前已知tom的排行榜,以及一部分的朋友關係,以及每個人在排行榜中排第一的次數。問tom的朋友最少在多少個陌生人的榜單中排第一。 題解 首先的話,很容易分析出,兩個人組成一個榜單,這樣的話會是結果最優。我

原创 CodeForces 86C AC自動機

題意 需要組成一個長度爲N的字符串,要求組成的字符串每一位在這個字符串中能找到一個子字符串,這個子字符串屬於一個字符串集合,這個集合有M的字符串。問有多少種組成方案。 題解 這道題很複雜,尤其是它是按子串組合來計算種類的,比如說樣

原创 Codeforces 863D 模擬

題意 有一組數,可以進行兩種變換,一種是區間元素循環右移,一種是區間元素翻轉。最多有20萬操作,最後有100次查詢,問某個點的值是多少。 題解 看起來是一道很難的數據結構題,但是查詢只有100次,所以暴力模擬就可以了。。。100次

原创 HDU 5976 逆元+打表+莫隊

題意 給一個數,拆分成不同的數,使得乘積最大。 題解 我們可以觀察一下如何拆分乘積最大,可以發現從2開始均分。如果最後有剩餘的元素,均分到每一個元素1個值,如果還有剩餘(只可能剩餘1個),分給最後一個元素。 暴力交一發,TLE。

原创 HDU 6000 優先隊列+快速IO

題意 有L件衣服,N個洗衣機,M個甩幹機,每個洗衣機和甩幹機都有獨立的處理時間,問洗完這些衣服最少需要多少時間。 題解 利用優先隊列貪心地去做,也算是模擬吧,把衣服扔到洗衣機中,取出來加到一個數組中(加到隊列中會超時)。然後倒着取

原创 HihoCoder 1579 組合數學

題意 問符合一個後綴數組的小寫字符串組合有多少種 題解 首先觀察後綴數組,4 3 2 5 1。可以得到一些信息: 1、4<3<2<5<1一定是符合的 2、至於等號關係需要判斷該位置後面的字符串與下一個位置後面字符串的關係,如果

原创 HDU 6006 狀壓DP

題意 給最多10個任務,每個任務完成需要一些技能,給最多10個工程師,每個工程師擁有一些技能。每個工程師只能完成一項任務,問最多可以完成多少任務。 題解 看到數據量只有10就應該想到是狀壓DP的,對於這道題我們發現技能狀態很多而擁

原创 HihoCoder 1259 數位DP

題意 3× f(n) × f(2n+1) = f(2n) × (1 + 3f(n)), f(2n) < 6×f(n).。要求每一個N滿足這兩個式子。設所有的f(n)%k==t爲g(t),求所有g(t)的異或。 題解 首先我們需要發

原创 Codeforces 863C 模擬

題意 Alice和Bob玩一個遊戲,2比1大,3比2大,1比3大。最開始兩個人選擇a和b,隨後進行k次遊戲,每一次每個人選擇的數字由一個矩陣決定。如果上一回合A選擇了a,B選擇了b,那麼A這一回合選擇A矩陣裏的(a,b)元素,B這

原创 HihoCoder 1580 RMQ+DP

題意 給一個矩陣,必須要修改一個值,使得最大子矩陣和最大。求這個最大子矩陣和。 題解 這道題非常坑的一點在於最大子矩陣並不一定要包含修改的元素,題目只是問了最大子矩陣而已。 由於這道題沒有繁複的修改操作,但是存在最大值查詢這一條

原创 HDU 4778 狀壓DP+博弈

題意 給G種顏色,B種揹包,每S種同一顏色的寶石可以合成一種神奇的寶石。A和B每次取一袋寶石到熔爐中,如果可以合成新的寶石,那麼拿走這些寶石,並且可以再次拿一袋寶石到熔爐中。問A所得寶石-B所的寶石的最大值是多少? 題解 很好的一