随笔分类 -  【准备删2】

每个人都在改变世界!
【动态规划】最大子段和
摘要:设序列n,起始值为0状态:s[i]是否加上dp[i - 1]1.若前一项为正,则dp[i] = dp[i - 1] + s[i]2.若前一项为非正,则dp[i] = s[i]3.用max记录最大的dp[i]#include #include int s[6] = { 0, 6, -1, 5, 4, -7 };int dp[100];int main(int argc, char *argv[]){ int sum = 0, max = 0; memset(dp, 0, sizeof(dp)); for (int i = 1; i 0) dp[i] = ... 阅读全文

posted @ 2014-03-29 05:12 至死丶不渝 阅读(116) 评论(0) 推荐(0)

【贪心】Huffman Code
摘要:1.构造Huffman Tree,每次取最小和次小的2个1 1 = 2 此时 2 3 62 3 = 5 此时 5 65 6 = 11 此时 11Huffman Tree如下 11 5 6 2 31 12.构造前缀编码(左0右1)#include #include int w[4] = { 6, 3, 1, 1 };typedef struct{ int weight; int LChild, RChild, parent;}HTNode;typedef struct{ HTNode *nod... 阅读全文

posted @ 2014-03-29 02:58 至死丶不渝 阅读(165) 评论(0) 推荐(0)

【分治】二分查找
摘要:设序列n1.分:在序列n中找到key,相当于在left, right中找到key即可2.治:每次取middle与key比较,若相同则返回middle + 1,否则返回-1#include int Divide_conquer(int n_Susake[], int key, int length){ int left = 0, right = length + 1, middle; while (left != right) { middle = (left + right) / 2; if (n_Susake[middle] == key) re... 阅读全文

posted @ 2014-03-29 01:54 至死丶不渝 阅读(150) 评论(0) 推荐(0)

【括号匹配】
摘要:1.当遇到左括号时,将其入栈2.当遇到右括号时,若栈非空,则与当前top匹配,再top出栈,若栈空,则缺左括号3.当串扫描完,若栈非空,则说明缺右括号,若栈空,则匹配成功#define _CRT_SECURE_NO_WARNINGS#include #define MAX 100char stack[MAX];int main(int argc, char *argv[]){ int N, top, flag; char ch; scanf("%d%*c", &N); while (N--) { top = 0, flag = 1; ... 阅读全文

posted @ 2014-03-28 16:47 至死丶不渝 阅读(271) 评论(0) 推荐(0)

【KMP】
摘要:KMP(克鲁特-莫里斯-普拉特算法)--子串的定位 效率O(n + m)如主串S ababcabcacbab 子串P abcacnext[i]的值的确定 --- 通过求出p1...pk-1 = pj-k+1.....pj-1的最大k值则上述abcac1 02 13 3-1为ab 14 4-1为abc 15 5-1为abca 2 (首尾a)试一试abcabc1 02 13 3-1为ab 14 4-1为abc 15 5-1为abca 2 (首尾a)6 6-1为abcab 3 (首尾ab)再试试ababaaaba1 02 13 3-1为ab 14 ... 阅读全文

posted @ 2014-03-28 14:16 至死丶不渝 阅读(117) 评论(0) 推荐(0)

导航