摘要: 题意: 给定一个序列,问最小能划分成几段,每段元素>=l个并且max-min<=s 题解: 这种一看就是dp[i]表示dp到第i位划分了几段,然后dp[i]=max{dp[j]+1} 考虑这样的max-min是从右向左递增的,所以可以二分 然后得到 j 的左右边界,线段树维护 1 #include< 阅读全文
posted @ 2019-02-28 01:15 幽蝶 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一棵树,每个点有个权值,求最大权值-最小权值<=d的连通块个数 题解: 枚举最大权值点作为根,可以算出最小权值最小是多少,然后树形dp,每次合并两个连通块dp[u]=dp[u]+dp[u]*dp[v] (原来的方案数+加入新连通块的方案数) 树形dp中大于最大或者小于最小显然就不考虑了; 阅读全文
posted @ 2019-02-28 00:12 幽蝶 阅读(139) 评论(0) 推荐(0) 编辑