随笔分类 -  动态规划-dp

摘要:题目链接 "BZOJ3235" 题解 求出每个点为顶点,分别求出左上,左下,右上,右下的矩形的个数g[i][j] 并预处理出f[i][j]表示点(i,j)到四个角的矩形内合法矩形个数 就可以容斥计数啦 枚举顶点(i,j),乘上另一侧矩形个数,如图: 但是会算重,对于这样的情况 减去即 阅读全文
posted @ 2018-07-12 21:36 Mychael 阅读(314) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3193" 题解 注意key是小于 第一问,显然按高度降序排序,逐个插入 如果高度各不相同,那么之前插入的都比当前插入的i大,可插入的位置个数就确定了 由于存在高度相同的情况,将key作为第二关键字升序排序 这样后面插入的就一定能插入前面插入的之后,统计一下之前插入了$c 阅读全文
posted @ 2018-07-10 10:24 Mychael 阅读(214) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3688" 题解 将点排序 设f[i][j][0|1]表示以第i点结尾,有j段,最后一段上升或者下降的方案数 以上升为例 $$f[i][j][0] = \sum\limits_{k = 1}^{i 1}\sum\limits_{y_k include include 阅读全文
posted @ 2018-07-03 20:33 Mychael 阅读(173) 评论(0) 推荐(0) 编辑
摘要:题目链接 "uoj132" 题解 真是一道大码题,,,肝了一个上午 老司机的部分是一个dp,观察点是按y分层的,而且按每层点的上限来看可以使用O(nd)dp,其中d是每层的点数 我们设f[i]表示从i点进入该层,直到走完为止所经过的最多点的数量,我们把原点也看做一棵树, 阅读全文
posted @ 2018-06-27 12:18 Mychael 阅读(212) 评论(0) 推荐(0) 编辑
摘要:题目链接 "loj2538" 题解 比较明显的是,由于强化牌倍数大于1,肯定是能用强化牌尽量用强化牌 如果强化牌大于等于k,就留一个位给攻击牌 所以我们将两种牌分别排序,企图计算F(i,j)表示i张强化牌选出最强的j张的所有方案的倍数和 G(i,j)表示从i张攻击牌选出最 阅读全文
posted @ 2018-06-23 08:32 Mychael 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2216" 题解 学过高中数学都应知道,我们要求p的极值,参变分离为 hj+sqrt|ij|hip 实际上就是求hj+sqrt|ij|hi的最大值 就可以设f[i]表示对i最大的该式的值 绝对值通常要去掉,一般可以 阅读全文
posted @ 2018-06-21 19:06 Mychael 阅读(154) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ1264" 题解 平凡的LCSO(n2)的 显然我们要根据题目的性质用一些不平凡的LCS求法 这就很巧妙了,, 我们考虑A序列的每个位置可能匹配B位置的哪些位置 而A序列中匹配的位置一定是单调递增的 那么我们就把A的每个位置所能匹配B的位置找出 阅读全文
posted @ 2018-06-19 20:12 Mychael 阅读(212) 评论(0) 推荐(0) 编辑
摘要:题目链接 "洛谷P4608" 题解 建个序列自动机后 第一问暴搜 第二问dp + 高精 设f[i][j]为两个序列自动机分别走到ij节点的方案数,答案就是f[0][0] 由于空间卡的很紧,高精不仅要压位,还要动态开内存 由于有些状态是没用的,记忆化搜索以减少内存损失 C++ inc 阅读全文
posted @ 2018-06-18 22:00 Mychael 阅读(314) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3782" 题解 我们把终点也加入障碍点中,将点排序,令f[i]表示从(0,0)出发,不经过其它障碍,直接到达(xi,yi)的方案数 首先我们有个大致的方案数(xi+yixi) 但是中途可能会经过一些其它障碍点,那么就减去 所以 $ 阅读全文
posted @ 2018-06-16 17:31 Mychael 阅读(189) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2553" 题解 话说在前,此题卡精度,最好开long double 先建AC自动机 求期望,逆着求,设f[i][j]为长度为i的串,当前匹配AC自动机j节点,之后能产生伤害的期望值 枚举转移,如果转移到一个单词节点,因为产生伤害的单词间不能相连,就直接跳回根节点 阅读全文
posted @ 2018-05-31 10:14 Mychael 阅读(155) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3427" 题解 容易发现最终序列一定是{1,0,1}组成的 因为如果有一个位置不是,那么这个位置一定大于1,那么上一个位置一定为1,所以该位置一定加到过1。由于1已经满足条件,而经分析得大于1会使下一个位置的决策不优反劣,所以一定不会大于1阅读全文
posted @ 2018-05-28 10:39 Mychael 阅读(163) 评论(0) 推荐(0) 编辑
摘要:题目链接 "洛谷P4591" 题解 设f[i][j]表示前i个串匹配到位置j的方案数,匹配一下第i个串进行转移即可 本来写了hash,发现没过,又写了一个KMP,依旧WA,无奈去翻题解,竟然要取模??!! 题面怎么不讲啊,, C++ include include inc 阅读全文
posted @ 2018-05-17 15:18 Mychael 阅读(402) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4032" 题解 首先膜hb 空手切神题 一问hash,二问枚举 三问trie树,四问dp 南二巨佬神hb 空手吊打自动机 orzorzorzorzorzorzorz 咳。说正解 要处理子串,直接搬上后缀自动机 要处理子序列,直接搬上序列自动机 阅读全文
posted @ 2018-05-15 11:15 Mychael 阅读(254) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3594" 题解 dp难题总是想不出来,, 首先要观察到一个很重要的性质,就是每次拔高一定是拔一段后缀 因为如果单独只拔前段的话,后面与前面的高度差距大了,不优反劣 然后很显然可以设出f[i][j]表示前i个玉米,第i棵必须选,且共拔高了j次的最大值 由之前的性质 阅读全文
posted @ 2018-05-14 20:48 Mychael 阅读(147) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3622" 题解 既已开题 ~~那就已经没有什么好害怕的了~~ 由题目中奇怪的条件我们可以特判掉nk为奇数时答案为0 否则我们要求的就是糖果大于药片恰好有nk2+k个的方案数,我们记为K 思路1 直接求恰好不好求,想到二项式反演: 如果有 阅读全文
posted @ 2018-05-12 15:00 Mychael 阅读(214) 评论(0) 推荐(1) 编辑
摘要:题目链接 "BZOJ1233" 题解 有一个贪心策略:同样的干草集合,底长小的一定不比底长大的矮 设f[i]表示i...N形成的干草堆的最小底长,同时用g[i]记录此时的高度 那么 $$f[i] = min\{f[j]\} \quad [sum[j 1] sum[i 1] \ge f[j 阅读全文
posted @ 2018-05-11 07:08 Mychael 阅读(148) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ1855" 题解 设f[i][j]表示第i天结束时拥有j张股票时的最大收益 若iW,显然在这之前不可能有交易 f[i][j]=max{f[i1][j],ap[i]j}[jas[i]] 否则,就有三种选择: ① 阅读全文
posted @ 2018-05-10 14:49 Mychael 阅读(176) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ1487" 题解 就是一个简单的仙人掌最大权独立集 还是不会圆方树 老老实实地树形Dp + 环处理 C++ include include include include include define LL long long int define Redge(u) for (i 阅读全文
posted @ 2018-05-07 19:18 Mychael 阅读(196) 评论(0) 推荐(0) 编辑
摘要:题目链接 "loj300" 题解 orz "litble" 膜完题解后,突然有一个简单的想法: 考虑到2是质数,考虑Lucas定理: $${n \choose m} = \prod_{i = 1} {\lfloor \frac{n}{2^{i 1}} \rfloor \mod 2^i \choo 阅读全文
posted @ 2018-05-03 19:13 Mychael 阅读(221) 评论(0) 推荐(0) 编辑
摘要:题目 小 CC 非常擅长背包问题,他有一个奇怪的背包,这个背包有一个参数 PP ,当他 向这个背包内放入若干个物品后,背包的重量是物品总体积对 PP 取模后的结果. 现在小 CC 有 nn 种体积不同的物品,第 ii 种占用体积为 V_iV i ​ ,每种物品都有无限个. 他会进行 qq 次询问,每 阅读全文
posted @ 2018-04-28 19:28 Mychael 阅读(577) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示