原创 hdu 1166 敵兵佈陣

線段樹的區間更新 詳情見代碼: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<algorithm> #define maxn 100100 using

原创 hdu 1247 Hat’s Words 字典樹統計單詞

字典樹統計單詞 題意:給你n個單詞,讓你找出由其它2個單詞構成的單詞,並按字典序輸出。注意輸入時已經是按字典序輸入的。 思路:在trie樹中標記每個單詞的結尾,查找時把單詞分成兩部分分別進行查找 詳情見代碼 #include<stdio

原创 hdu 1754 I Hate It

線段樹的單點更新 詳情請見代碼: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<algorithm> #defin

原创 hdu 1394 Minimum Inversion Number 線段樹求逆序數

線段樹求逆序數 題意:給你一個串數字,數字串第一個依次循環放到最後一個,求每個數字串的逆序數的最小值。 逆序數,當前位置,前面有多少個比它大的數 如:0 3 4 1 2 0 3 4 1 2  逆序數:4 3 4 1 2 0  逆序數:8

原创 hdu 1305 Immediate Decodability 字典樹

字典樹統計字符串個數 題意:給你一些字母的編碼,全部爲01串,讓你判斷一個01串是不是另外一個01串的前綴。 思路:把01全部存入字典樹裏面,在依次查找這些字符串,如果這個字符串出現的次數大於等於兩次,就不可以快速解碼了 詳情見代碼:

原创 hdu 1968 Just a Hook 線段樹區間更新

線段樹區間更新 題意:胖子有一條大金屬棒,大金屬棒由n個小金屬棒組成,每次操作將一個區間的小金屬棒變成金銀銅三者之一,最後取出所有區間的金屬棒總價值,注意,金屬棒的初始值1 思路:每次把該區間內的值更新爲該值,並更新父節點 #includ

原创 poj 3630 Phone List 字典樹統計字符串個數

字典樹應用 題意:給你一些數字串,讓你找一個數字串是否爲另一個數字串的前綴 思路:把所以的數字串存入字典樹中,然後查找所以的數字串,如果該串出現過兩次以上,則是另外一個數字串的前綴 #include<stdio.h> #include<s

原创 hdu 2689 Sort it

樹狀數組求逆序數 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<array> using namespace std;

原创 hdu 2191 悼念512汶川大地震遇難同胞——珍惜現在,感恩生活

多重揹包模板題 #include<cstdio> #include<cstring> #define maxn 11000 int dp[maxn]; int a[maxn],b[maxn],c[maxn]; int m,n; inlin

原创 hdu 1503 Advanced Fruits

最長公共子序列 給你2個字符串,找出一個一個最短的字符串,同時包含這2個字符串。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<algorithm> #d

原创 hdu 2838 Cow Sorting

題意。給你n個數,讓你把它排成序列。只可以相鄰的2個交換。交換一次的代價爲兩數之和,求最小代價。 先求逆序數,然後統計每個數字被用了幾次。對某個位置i,如果前面比他大的有x個,那麼a[i]至少要加x次 那麼對於第i個位置的值爲k=ans*

原创 poj 2001 Shortest Prefixes 字典樹

字典樹查詢單詞 題意給你一些字符串,找出能夠唯一標識這個字符串的最短前綴 思路:先把字符串全部存進字典樹,依次查找,依次輸出,如果該字符出現的次數爲1,則停止輸出 詳情見代碼: #include<stdio.h> #include<std

原创 hdu 4300 Clairewd’s message

KMP 或擴展KMP 題意,給你一個密碼對應表,給你一個密碼串。密碼串包含明文和密文,密文在前明文在後,可能明文不完整。完整時,密文明文各一半。然後你輸出完整的密碼錯。 如密碼串 qwertabcde 全部翻譯爲明文 abcdekxvm

原创 hdu 1025 Constructing Roads In JGShining's Kingdom

最長上升子序列 題意:有2條線,每條線上有n個點,現在給你一些連接方式,一條線的點去連接另外一條線上的點。問這些線不交叉,最多能連多少條線 #include<cstdio> #include<cstdlib> #include<cstri

原创 hdu 1075 What Are You Talking About STL的使用

STL 的map容器使用 題意:給你一些單詞的對應表,然後給你一些句子,輸出句子,並把句子中與單詞對應表中相對應的單詞輸出 #include<stdio.h> #include<stdlib.h> #include<string.h>