1、背包问题。0/1背包、完全背包、多重背包、分组背包、依赖背包。 2、子序列。最长非上升/下降子序列、最长先上升再下降子序列、最长公共子序列、最大连续子区间和。 3、最大子矩阵。 4、区间dp。 5、环形dp。 6、树形dp。 7、最少线段覆盖(codevs1214) ...
分类:
其他好文 时间:
2016-08-03 18:42:59
阅读次数:
306
题目大意:一个数列,有两个操作:1.修改操作,将一段区间内的数加上c;2.查询操作,查询一段区间内的数的和。 思路:线段树裸题,区间修改、区间查询,维护和以及加上的数,由于无序,不需要向下推标记,只需在子树更新完之后更新根节点即可。 代码: ...
分类:
其他好文 时间:
2016-08-03 18:37:15
阅读次数:
132
先说说区间更新和单点更新的区别 主要的区别是搜索的过程 前者需要确定一个区间 后者就是一个点就好了 贴上两者代码 ...
分类:
其他好文 时间:
2016-08-03 15:28:42
阅读次数:
115
bzoj4582[Usaco2016 Open]Diamond Collector 题意: n个钻石,每个都有一个大小,现在将其装进2个盒子里,每个盒子里的钻石最大的与最小的大小不能超过k,问最多能装多少个。n最大50000。 题解: 我真傻,真的~首先对大小排序,然后找以i为左端点的可装区间,这个 ...
分类:
其他好文 时间:
2016-08-03 14:55:07
阅读次数:
138
题目链接:http://poj.org/problem?id=1651 思路:除了头尾两个数不能取之外,要求把所有的数取完,每取一个数都要花费这个数与相邻两个数乘积的代价,需要这个代价是最小的 用dp[i][j]表示区间[i,j]的最小代价,那么就有dp[i][j]=min(dp[i][k]+dp[ ...
分类:
其他好文 时间:
2016-08-03 10:08:11
阅读次数:
118
Problem 染色(BZOJ2243) 题目大意 给定一颗树,每个节点上有一种颜色。 要求支持两种操作: 操作1:将a->b上所有点染成一种颜色。 操作2:询问a->b上的颜色段数量。 解题分析 树链剖分+线段树。 开一个记录类型,记录某一段区间的信息。l 表示区间最左侧的颜色 , r 表示区间最 ...
分类:
其他好文 时间:
2016-08-03 01:28:17
阅读次数:
358
题目链接:hdu_5787_K-wolf Number 题意: 给你一个区间,让你找满足任意k个数位内都没有相同的数字的个数 题解: 因为k不大,就直接将当前pos的前k-1个数传进去就行了 1 #include<cstdio> 2 #include<cstring> 3 int dig[20],l ...
分类:
其他好文 时间:
2016-08-02 23:51:33
阅读次数:
304
Frequent values 题目链接: http://poj.org/problem?id=3368 题意: 给出一个非递减序列,求区间内最多的数字的数量 题解: 水题,dp[i][j]记录从 i 开始2^j个数中的出现最多的数,合并dp[i][j]和dp[i+(1<<j)][j]得到dp[i] ...
分类:
其他好文 时间:
2016-08-02 23:41:31
阅读次数:
196
Balanced Lineup 题目链接: http://poj.org/problem?id=3264 题意: 求区间最大值和最小值的差 题解: Rmq模板题 代码 ...
分类:
其他好文 时间:
2016-08-02 21:02:14
阅读次数:
164