随笔分类 - 动态规划--就是DP
摘要:"传送门" 好神啊 直接考虑一棵 $n+m$ 个叶子的 $k$ 叉树,根结点权值为 $\sum_{i\in m}(\frac{1}{k})^{deep_i}$ 对于一个 $deep$ 的序列 如果 $\sum_{i\in m}(\frac{1}{k})^{deep_i}+\sum_{i\in n}(
阅读全文
摘要:"传送门" 首先可以有一个平方复杂度的 $DP$ 设 $f_{i,j}$ 表示前面 $i$ 个小格,高度为 $j$ 的最大答案 令 $h_i$ 表示隔板 $i$ 的高度 当 $j\le h_i$ 时,转移到 $f_{i+1,k},k\in [0,h_i]$ 否则 $f{i,j}\rightarrow
阅读全文
摘要:"传送门" 一道 $DP$ 好题 设 $q$ 为一个块合法的概率 套路一 恰好为 $k$ 的概率不好算,算小于等于 $k$ 的减去小于等于 $k 1$ 的 那么设 $f_i$ 表示宽为 $i$ 的合法的泳池面积都小于等于 $k$ 的概率 设 $g_i$ 表示宽为 $i$ 的合法的泳池面积都小于等于
阅读全文
摘要:题意 你要用 $ATGC$ 四个字母用两种操作拼出给定的串: 1. 将其中一个字符放在已有串开头或者结尾 2. 将已有串复制,然后 $reverse$ ,再接在已有串的头部或者尾部 一开始已有串为空。求最少操作次数。 $len\le100000$ Sol 首先有个结论 每次形成偶数长度回文串的最后一
阅读全文
摘要:题面 "传送门" Sol 设$f[i]$表示$i$到根的最小代价 $f[i]$可以由$f[j]$转移而来,要求$j$为$i$的父亲,并且满足距离限制 显然$DP$式可以斜率优化 然而这是在树上,并且每次都要一个$i$往上的若干个点的凸包 可以考虑维护区间凸包,可以用线段树 或者$CDQ$分治 $CD
阅读全文
摘要:题面 "传送门" Sol 套路:找出重心,如果有两个就新建一个点 然后把这棵树hash一下 设$f[i][j]$表示第一颗树到$i$第二棵树到$j$,子树$i,j$同构的付出的最小代价 转移:每次把这一层hash值相同的点做一边二分图权匹配(KM/费用流)就好了 ~~一遍AC~~ cpp inclu
阅读全文
摘要:题面 "传送门" Sol 左右可以分开搞 然后就是要形成一个类似梳子的东西 设$f[0/1][i][j]$ $0$凹,$1$凸,$i$为行,可以滚一维,$j$为该行长度 $f[0][i][j] = min(f[0][i 1][j], f[1][i 1][k]) + j a[i]; k j$ $f[1
阅读全文
摘要:题面 "传送门" Sol 处理出每个数$p[i]$最大能变成多少和最小能变成多少$mx[i], mn[i]$ 设$f[i]$表示到第$i$个位置的最长的满足要求的序列 $f[i]=max(f[j])+1$满足$mx[j]\le p[i]$且$p[j] \le mn[i]$ 然后这个东西类似三维偏序,
阅读全文
摘要:Sol 发现$NOIP2017$还没$AK$??? 赶紧改 考场上明明打出了$DP$,没时间了,没判环,重点是没初始化数组,爆$0$ $TAT$ 先最短路,然后$f[i][j]$表示到$i$时,比最短路大$j$的方案 大力记搜就好了 判环就记录一下当前转移的是否在栈中就没了 明明这么简单,可我就是与
阅读全文
摘要:题面 "传送门" Sol $sto \ \ $ $fdf$ $sto \ \ $ $fateice$ 显然,如果一个区间包含了另一个区间,那么它的最小值不会有贡献,直接去掉 考虑枚举最大值$k$ 求出所有区间满足最小值小于等于$k$的概率,设为$P[k]$ 那么$k$的贡献就是$(P[k] P[k
阅读全文
摘要:Sol 设$f[i][j]$表示钦定$i$建基站,建了$j$个基站的最小代价 $f[i][j]=max(f[l][j 1]+\Sigma_{t=l+1}^{i 1}$不能影响到的村庄的$w[t])+c[i]$ 二分处理出每个村庄$p$左右能影响到它的最远的基站设为$L[p], R[p]$ $l,i$
阅读全文
摘要:题意 将一个长度为$n$的序列分为$k$段 使得总价值最大 一段区间的价值表示为区间内不同数字的个数 $n define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace st
阅读全文
摘要:题面 "传送门" Sol 线段树维护区间$DP$ 差分,你会发现就是选一些区间,第一个值可以不一样 那么我们维护原数组左右端点是否选的情况,一共四种 注意差分数组只有$n 1$的长度,并且每个数维护的是两个相邻的原数组的数 cpp include define RG register define
阅读全文
摘要:题面 "Bzoj" Sol 暴力:$设f[i][j][k]$表示到第$i$次倾斜,当前在$(j, k)$的滑动最大距离 然后$O(n m T)$转移,$AC$了??? cpp include define RG register define IL inline define Fill(a, b)
阅读全文
摘要:因为Bzoj是权限题,所以可以去清橙做一下 Sol 突然考了一道这样的题,考场上强行$yy$出来了 ~~win下评测Long double爆零TAT~~ 首先肯定是破环为链变成序列问题辣 那么就要求第一个的颜色和最后的颜色不同 怎么统计,枚举前面有多长和右面有多长长度相等 中间的强制第一个与枚举的前
阅读全文
摘要:题面 "Bzoj" Sol 设$f[i][j]$表示第$i$天有$j$张股票的最大收益 转移很简单辣 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using nam
阅读全文
摘要:Sol 一个很显然的暴力,设$f[i]$表示选到$i$的最优效率 每次枚举一段不与前面连续的长度小于$k$的区间转移来 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a))
阅读全文
摘要:题面 "Bzoj" Sol pts 1 大暴力很简单,$f[i][j]$表示到第$i$个位置,前面积的模为$j$的方案 然后可以获得$10$分的好成绩 cpp include define RG register define IL inline define Fill(a, b) memset(a
阅读全文
摘要:题面 "Bzoj" Sol $AC$自动机上$DP$ 总数$ $不合法 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typ
阅读全文

浙公网安备 33010602011771号