<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[GentleH's]]></title><description><![CDATA[Keep struggling against the weakness of human nature..!]]></description><link>https://blog.youkuaiyun.com/acbron</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; acbron]]></copyright><item><title><![CDATA[对KMP算法的认识和总结]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/11582661</link><guid>https://blog.youkuaiyun.com/acbron/article/details/11582661</guid><author>acbron</author><pubDate>Wed, 11 Sep 2013 22:40:54 +0800</pubDate><description><![CDATA[对KMP算法的认识和总结
I.什么是KMP算法
KMP算法适用于模式串对文本的快速匹配，在暴力的匹配算法中，需要遍历文本串，设文本串的长度为n，模式串的长度为m，时间复杂度为O(n*m)，在大数据下显然不行的。KMP算法则可以在最坏情况O(n+m)下完成匹配。



II.KMP算法中的匹配过程
next[]数组是KMP算法的精髓，首先给出例子：ababacab，字符串的下标从0开始]]></description><category></category></item><item><title><![CDATA[HDU 1867 A + B for you again (KMP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/11493557</link><guid>https://blog.youkuaiyun.com/acbron/article/details/11493557</guid><author>acbron</author><pubDate>Mon, 09 Sep 2013 22:10:54 +0800</pubDate><description><![CDATA[个人觉得，KMP算法中，讲得最容易懂的是Matrix67那个版本：http://www.matrix67.com/blog/archives/115/
这道题的意思是，给两个字符串a和b,问a和b是否可以连接，求连接后长度最短的，在最短的条件下，再取字典序最小的。比如样例中的asdf和sdfg，可以连接成asdfg和sdfgasdf，明显前者才是符合要求的答案。
要找长度最短的，自然是有两种连]]></description><category></category></item><item><title><![CDATA[Ubuntu 将应用程序添加到启动器]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/11483139</link><guid>https://blog.youkuaiyun.com/acbron/article/details/11483139</guid><author>acbron</author><pubDate>Mon, 09 Sep 2013 16:48:34 +0800</pubDate><description><![CDATA[1. cd '/usr/share/applications'
2. sudo gedit 应用程序名字.desktop
3. 在弹出的文本里添加：
[Desktop Entry]
Type=Application
Name=名字
Comment=描述
Icon=/应用程序所在文件夹/icon.xpm
Exec=/应用程序所在文件夹/应用程序
Terminal=false
Ca]]></description><category></category></item><item><title><![CDATA[Ubuntu 安装 JDK7]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/11480943</link><guid>https://blog.youkuaiyun.com/acbron/article/details/11480943</guid><author>acbron</author><pubDate>Mon, 09 Sep 2013 15:55:17 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/cmdkmd/article/details/9394825



1  下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 我的机器是x86的 jdk-7u25-linux-i586.tar.gz
 2   解压]]></description><category></category></item><item><title><![CDATA[POJ 1035 Spell checker （trie树）]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/11178101</link><guid>https://blog.youkuaiyun.com/acbron/article/details/11178101</guid><author>acbron</author><pubDate>Thu, 05 Sep 2013 21:00:37 +0800</pubDate><description><![CDATA[题目大意：给一系列字符串，构成一个词典，然后有若干询问，每个询问为一个字符串x，问字符串是否在词典中，若在则输出x is correct，否则，通过删除x中的某个字符，或者替换x中的某个字符，或者在x中的插入一个字符，使得得到的新字符在词典中，全部输出。输出时要按照词典中字符串的存在顺序。（词典中最多有10000个单词，字符串的长度最大为15，最多有50个询问。）
简单的trie树应用。每个结点]]></description><category></category></item><item><title><![CDATA[LA3983 Robotruck (单调队列优化DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/10915749</link><guid>https://blog.youkuaiyun.com/acbron/article/details/10915749</guid><author>acbron</author><pubDate>Mon, 02 Sep 2013 19:36:37 +0800</pubDate><description><![CDATA[Problem links: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1984
题目大意：给出一些垃圾点的坐标x,y(x,y为非负整数)以及每个垃圾的重量,给出机器人的携带量cap，垃圾桶在原点(0,0),机器人从原点出发按顺序拣垃]]></description><category></category></item><item><title><![CDATA[HDU 3516 Tree Construction (四边形优化DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/10231045</link><guid>https://blog.youkuaiyun.com/acbron/article/details/10231045</guid><author>acbron</author><pubDate>Fri, 23 Aug 2013 17:04:53 +0800</pubDate><description><![CDATA[题目大意：给出n个点的坐标，对于 i  y[j]。问如何将这些点连起来，线只能向上或者向右。求线最短是多大。
定义状态dp[i][j]表示从点i到点j，连起来需要线的最小值。则得到转移方程为：
dp[i][j] = min(dp[i][k]+dp[k+1][j]+cost[i][j]);其中i
考虑到该式子跟一般四边形优化的DP是一样的，所以只要证明cost[i][j]是单调递减的即可。
]]></description><category></category></item><item><title><![CDATA[UVa 10304 (黑书例题，DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/10173243</link><guid>https://blog.youkuaiyun.com/acbron/article/details/10173243</guid><author>acbron</author><pubDate>Thu, 22 Aug 2013 10:54:30 +0800</pubDate><description><![CDATA[Problem Links： http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1245
题目大意：给出N个节点，每个节点都有一个值f，问如何构造一棵二叉树，使得f[1]*dis[1]+f[2]*dis[2]....*f[n]*dis[n]的值最小。其中di]]></description><category></category></item><item><title><![CDATA[UVa 10534 Wavio Sequence (黑书例题，DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/10165767</link><guid>https://blog.youkuaiyun.com/acbron/article/details/10165767</guid><author>acbron</author><pubDate>Thu, 22 Aug 2013 00:06:44 +0800</pubDate><description><![CDATA[Problem links: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1475
最长上升子序列问题。由于N
#include 
#include 
#include 
#include 
#define SIZE 10010

using nam]]></description><category></category></item><item><title><![CDATA[POJ 1691 （黑书习题，平板涂色）]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/10121297</link><guid>https://blog.youkuaiyun.com/acbron/article/details/10121297</guid><author>acbron</author><pubDate>Tue, 20 Aug 2013 19:28:27 +0800</pubDate><description><![CDATA[考虑到矩形个数不超过15个，自然首先想到状态压缩DP。对于每个方块，若已经涂色则对应位置为1，否则为0。则最终状态为(1
dp[state][k] = min(dp[state][k],dp[state+t][color]) ---当color == k时；
dp[state][k] = min(dp[state][k],dp[state+t][color]+1) ---当color != k]]></description><category></category></item><item><title><![CDATA[POJ 1337 偷懒的工人 （黑书习题）]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/10095967</link><guid>https://blog.youkuaiyun.com/acbron/article/details/10095967</guid><author>acbron</author><pubDate>Tue, 20 Aug 2013 09:49:46 +0800</pubDate><description><![CDATA[题目描述略为坑爹，其中n取值应该为0
定义状态dp[i]表示在i时刻时，还需要工作的最少时间。由条件可以知道，每一个工作所能被做的时间段为ai~di-ti，这样便可以根据输入把每个时刻可以做的工作构成一个集合。所以对于时刻i，有dp[i] = min(dp[i],dp[i+t[k]]+t[k])；表示在i时刻做了第k个工作。如果i时刻没有工作可做，则dp[i] = dp[i+1]。边界条件为dp]]></description><category></category></item><item><title><![CDATA[POJ 3254 & POJ 1185 (状态压缩DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9985265</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9985265</guid><author>acbron</author><pubDate>Thu, 15 Aug 2013 16:48:29 +0800</pubDate><description><![CDATA[POJ 3254
题目大意：给一块n*m大小的田地来种东西，每一小块只能种一颗，且相邻的块不能都种。问有多少种种地方案（不种也是一种方案）。答案模上一个给定的数。1
（1）首先想到用一个二进制数来表示某行的种植状况，二进制位上是1代表种了，0代表没种。那么m取最大12时，只需1<<12以内的数就能表示所有状态。令dp[i][s]表示第i层，用s这种种植方法的总方案数，可以知道，由s可以推出下一]]></description><category></category></item><item><title><![CDATA[POJ 3311 Hie with the Pie (状态压缩DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9971245</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9971245</guid><author>acbron</author><pubDate>Wed, 14 Aug 2013 21:02:27 +0800</pubDate><description><![CDATA[题目大意：规定原点为0，给出n，表示除了原点外还有n个点。然后给出一个矩阵dis[][]，dis[i][j]表示i到j的距离。要求每个点都走过一次，并且最终回到原点，求最短路。其中点是可以重复走的。1
这是经典的旅行商问题（TSP），入门状态压缩DP，其中n的取值是个标志。
由于n 
定义状态dp[state][k]表示在状态state，且最终停留在k点时的最短路。则有转移方程：
dp[s]]></description><category></category></item><item><title><![CDATA[HDU 3062 & HDU 1824 (2-sat入门题)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9843017</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9843017</guid><author>acbron</author><pubDate>Thu, 08 Aug 2013 22:59:25 +0800</pubDate><description><![CDATA[《由对称性解2-SAT问题》：http://wenku.baidu.com/view/afd6c436a32d7375a41780f2.html
所谓2-sat问题，就是在满足一定逻辑条件下，是否存在可行解的问题，这里的“可行”指的是在逻辑上不出现矛盾。具体参见上述ppt，确实是非常不错的讲解。
问题类型：
通常来说，一般是有若干个组，每一个组有两个元素，A和A'，二者只能选择一个。同时还有]]></description><category></category></item><item><title><![CDATA[一直以来伴随我的一些学习习惯(part2)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9826107</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9826107</guid><author>acbron</author><pubDate>Thu, 08 Aug 2013 01:26:14 +0800</pubDate><description><![CDATA[转载自：http://blog.youkuaiyun.com/pongba/article/details/2681668
一直以来伴随我的一些学习习惯(part2)
By 刘未鹏(pongba)
C++的罗浮宫(http://blog.youkuaiyun.com/pongba)
 
接着上次的写。
1. 学习和思考的过程中常问自己的几个问题：

你的问题到底是什么？（提醒自己思考不要偏离问题。） OK]]></description><category></category></item><item><title><![CDATA[一直以来伴随我的一些学习习惯（四）——程序员的知识结构]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9826043</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9826043</guid><author>acbron</author><pubDate>Thu, 08 Aug 2013 01:15:10 +0800</pubDate><description><![CDATA[转载自：http://blog.youkuaiyun.com/pongba/article/details/3456240
 
一直以来伴随我的一些学习习惯（四）——程序员的知识结构
By 刘未鹏(pongba) 
C++的罗浮宫(http://blog.youkuaiyun.com/pongba)
TopLanguage(https://groups.google.com/group/pongba)]]></description><category></category></item><item><title><![CDATA[URAL 1143 Electric Path (黑书例题，DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9824737</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9824737</guid><author>acbron</author><pubDate>Wed, 07 Aug 2013 23:34:54 +0800</pubDate><description><![CDATA[Problem Links: 
http://acm.timus.ru/problem.aspx?space=1&num=1143
 
由于所有点构成一个凸多边形，所以要使总线路最短，则线路必不相交。所以第 i 个点，必然只能走到 i+1 或者 i-1，当然对于点1的话，则走到2或者n（环状）。
定义状态dp[s][l][0]表示从s出发，遍历 l 个点的最短线路，dp[s][l][1]表]]></description><category></category></item><item><title><![CDATA[ECNU 1600 公路巡逻 (黑书例题，DP)]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9817303</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9817303</guid><author>acbron</author><pubDate>Wed, 07 Aug 2013 15:12:14 +0800</pubDate><description><![CDATA[Problem links: 
http://202.120.80.191/problem.php?problemid=1600
 
定义状态dp[i][j]表示目标车经过i个站，历时j秒所遇到的最少巡逻车。则答案为dp[n][j]，满足条件的最少时间即为j。得到的状态转移方程为：
dp[i][j+a] = min(dp[i][j+a],dp[i-1][j]+meet);其中meet为目标]]></description><category></category></item><item><title><![CDATA[HDU 4651 Partition]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9798943</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9798943</guid><author>acbron</author><pubDate>Tue, 06 Aug 2013 22:53:56 +0800</pubDate><description><![CDATA[Partition
Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 117    Accepted Submission(s): 61

Problem Description
How many ways can the num]]></description><category></category></item><item><title><![CDATA[UVALive 2031 Dance Dance Revolution]]></title><link>https://blog.youkuaiyun.com/acbron/article/details/9673053</link><guid>https://blog.youkuaiyun.com/acbron/article/details/9673053</guid><author>acbron</author><pubDate>Wed, 31 Jul 2013 21:30:16 +0800</pubDate><description><![CDATA[黑书例题4 --- “舞蹈家”怀特先生
problem links:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=32
 
容易得到dp[x][y][k]的状态，表示左脚在x,右脚在y，跳了k步时花费的最少体力。则有：
dp[arr]]></description><category></category></item></channel></rss>