随笔分类 -  HDU

摘要:hdu5791 dp[i][j]表示的是序列A前i个数字和序列B前j个数字的公共子序列的总个数,那么的dp公式就可以这么表示 理解一下此公式若最尾部的a[i]和b[j]相等的话,那么单独的a[i]和b[j]组成1个相同子序列。 同时我们可以想一下之前的前i-1个子序列和前j-i个子序列再加上a[i] 阅读全文
posted @ 2016-08-11 15:15 fancy_boy 阅读(383) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1074 我们可以断定状态的终止态一定是n个数全部选完的情况,那么它的前一个状态是什么呢,一定是剔除任一门课程后的n种状态。 例如 dp[全选了]=min{(dp[除了math都做了]+math的超时天数),(dp[ 阅读全文
posted @ 2016-03-26 22:06 fancy_boy 阅读(165) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506 题目的意思其实就是要找到一个尽可能大的矩形来完全覆盖这个矩形下的所有柱子,只能覆盖柱子,不能留空。 我们求得的面积其实就是Max{s=(right[i] - left[i] + 1)*height 阅读全文
posted @ 2016-03-19 15:22 fancy_boy 阅读(1821) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5600 本文重在分析该题目的思路,代码极其短,但是想到这个题目的思路却是挺复杂的过程。 思路 自己拿到题目也想到了很多,用了一些小的样例去找寻一些规律,但是还是没有完全找到方法。 这个题目中重要的一点是你要能发现操 阅读全文
posted @ 2016-02-16 23:10 fancy_boy 阅读(269) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5616 思路 题目中蕴含着两种需要计算的重量 1. 从所有的砝码中挑出任意种2.(转换的思想)在天平的两端都挑出这些砝码中的一些,它也可以计算出差值,这个差值也是一种重量 这其实一种转换,看下面这个公式(左端砝码的 阅读全文
posted @ 2016-02-14 16:08 fancy_boy 阅读(609) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #define MAXN 100005 5 #define M 20005 6 typedef __int64 LL ; 7 using namespace std; 8 LL n,max_num ; 9 LL s[M],a[M... 阅读全文
posted @ 2015-08-31 23:50 fancy_boy 阅读(151) 评论(0) 推荐(0) 编辑
摘要:注意题目中的这句话he put the strawberries on the cake randomly one by one,第一次选择草莓其实有N个可能,以某一个草莓为开头,然后顺序的随机摆放,所以最后的概率为n/m^(n-1),最后通过大数模板搞定该题的化简。C++代码 1 #includ... 阅读全文
posted @ 2015-08-29 15:17 fancy_boy 阅读(199) 评论(0) 推荐(0) 编辑
摘要:主要是要知道它对于等差数列的定义,单个数也可以作为等差数列且一定满足题意,另外就是要算清楚区间与区间的关系,考虑两大类情况,一种是d1区间和d2区间连在一起,另外一种情况就是其余情况。 1 #include 2 #include 3 #include 4 #define MAXN 100005 5 ... 阅读全文
posted @ 2015-08-22 16:35 fancy_boy 阅读(183) 评论(0) 推荐(0) 编辑
摘要:等价转换,题意简单来讲如下:在一条直线均匀分布N个村庄,每个村庄要么买酒,要么卖酒,且村庄的买酒和卖酒供需平衡,总和为0,把k个单位的酒从一个村庄运到相邻的村庄需要k个单位的劳动力,输出最小的劳动力。贪心,从最左边的村庄考虑,如果需要买酒,则一定有劳动力从村庄2及以后的村庄运到村庄1,这样问题就可以... 阅读全文
posted @ 2015-08-18 23:07 fancy_boy 阅读(227) 评论(0) 推荐(0) 编辑
摘要:模板题引入并查集——一则有趣的故事为了解释并查集的原理,我将举一个更有趣的例子。话说江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋... 阅读全文
posted @ 2015-06-15 21:48 fancy_boy 阅读(306) 评论(0) 推荐(0) 编辑
摘要:我以此题为例,详细分析01背包问题,希望该题能够为大家对01背包问题的理解有所帮助,对这篇博文有什么问题可以向我提问,一同进步^_^饭卡Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Tot... 阅读全文
posted @ 2015-04-05 17:31 fancy_boy 阅读(4284) 评论(0) 推荐(2) 编辑
摘要:对于求逆序数问题,学会去利用树状数组进行转换求解方式,是很必要的。一般来说我们求解逆序数,是在给定一串序列里,用循环的方式找到每一个数之前有多少个比它大的数,算法的时间复杂度为o(n2)。那么我们通过树状数组可以明显提高时间效率。我们可以按照排列的顺序依次将数字放入树状数组中,并依次更新预与之相关联... 阅读全文
posted @ 2015-03-14 23:43 fancy_boy 阅读(353) 评论(0) 推荐(0) 编辑
摘要:Super Jumping! Jumping! Jumping!首先对于动态规划问题要找出其子问题,如果找的子问题是前n个序列的最长上升子序列,但这样的子问题不好,因为它不具备无后效性,因为它的第n+1的数会影响前n个序列的长度,换句话说,如果第n+1个数加上去不一定使得和前n个数加起来就是最长子序... 阅读全文
posted @ 2015-03-13 23:51 fancy_boy 阅读(2461) 评论(0) 推荐(0) 编辑
摘要:我们用递归+记忆化的方法来解决普通整数划分问题:定义 f(n,m)为将整数n划分为一系列整数之和,其中加数最大不超过m。得到下面的递推关系式:当n==1 || m==1 只有一种划分,即 1 或者 1+1+1......+1当m>n 显然,等价于 f(n,n)当m==n 此时:我考虑加数包含m与否的... 阅读全文
posted @ 2015-03-11 20:16 fancy_boy 阅读(393) 评论(0) 推荐(0) 编辑
摘要:将一个3*n的矩形用1*2的矩形填充,n为奇数时一定不能被填满,n*3%2==1接下来处理这个问题我们要从简单的情况开始考虑,所谓递归就是要能将问题的规模不断减小,通过小问题的解决最后将复杂问题解决。如果是3*2的情况仅有3种可能那么我们来考虑3*4的矩形是否一些就是有这两个3*2的矩形拼接在一起的... 阅读全文
posted @ 2015-03-07 17:33 fancy_boy 阅读(274) 评论(0) 推荐(0) 编辑
摘要:树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值。这种... 阅读全文
posted @ 2015-03-03 23:31 fancy_boy 阅读(1310) 评论(0) 推荐(1) 编辑
摘要:Problem DescriptionAngel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M a.x;//最小值优先 } }; ... 阅读全文
posted @ 2015-02-21 18:46 fancy_boy 阅读(152) 评论(0) 推荐(0) 编辑
摘要:回溯法:避免无用判断,强化回溯代码的实现过程题目的大意就是以字典序为准,排列字符串,但要保证一个字符串中不包含相邻的重复子串。Problem DescriptionFor example, the sequence ABACBCBAD is easy, since it contains an ad... 阅读全文
posted @ 2015-02-21 18:02 fancy_boy 阅读(295) 评论(0) 推荐(0) 编辑