随笔分类 - 动态规划
摘要:题意 给你一棵点权是 $0/1$ 的树,你可以从任意一点开始,走到任意一点结束,每到达一个点,都要翻转当前的点权。给定初始的点权,求使得整棵树的点权都变成 $1$ 的最短路径长度。 Solution ~~乍一看以为是个换根。。。看题解发现自己 naive 了。~~ 对于求树上最优路径的问题,可以考虑
阅读全文
摘要:题意 一张有向图,初始有边 $\forall i\in[1,n-1],i\to i+1$,边权为 $0$。后来加入 $n\times (n-1)$ 条边,是对于每一对 $i,j(i\not ={j})$,连边 $i\to j$,若 $i<j$,边权为 $-1$,否则边权为 $1$。 删去后来加入的每
阅读全文
摘要:题意 给定一个 $n$,求计数长度为 $n$ 的排列 $p,q$ 使得 $p$ 字典序小于 $q$ 并且 $p$ 逆序对个数大于 $q$。 Solution ~~感觉一直不太会这种排列的计数题。~~ 对于不考虑字典序的情况,我们可以令 $dp_{i,j}$ 表示前 $i$ 个数构成排列有 $j$ 个
阅读全文
摘要:题意 给你两个序列 $a,b$,求严格递增的序列 $c$ 的个数,满足:$\forall i,c_i\in[a_i,b_i]$。特别的,如果 $c_i=0$ 则无视当前这个 $c_i$。 Solution 好困难的 dp,耗我半个晚上。 首先是对区间离散化,然后转化成一堆区间。此时对 $dp$ 的定
阅读全文
摘要:题意 有 $n$ 个敌方单位,每次操作会使其中某个单位有 $p$ 的概率减少 $1$ 的血量。每次询问会给出 $k$ 个敌方单位的编号,求从这些存活的敌方单位中等概率选取一个,每个敌方单位被选取的概率。 最后输出每个敌方单位的期望血量。 Solution 小数据范围,考虑暴力维护每个敌方单位每个血量
阅读全文
摘要:题意 给定一张有向图,点有点权,边有边长。现在你从 $1$ 号点出发,经过时间 $T$ 之后恰好回到 $1$,期间每次经过每一个点都可以获得它的点权。其中,在不同的 $k$ 次时间某些节点会能获得额外的权值。求这 $T$ 时间能获得的最大权值和。 Solution 首先不考虑额外的权值。考虑到 $n
阅读全文
摘要:题意 给定一个序列 $a$,求 $a$ 的所有排列的最大前缀和的和。 $1\le n\le 20$。 Solution 考虑到 $n$ 很小的性质,想到状压。 先考虑一手,最大前缀和应该满足什么条件。一段前缀 $[1,i]$ 为最大前缀和,当且仅当,在 $[1,i]$ 的任意一段后缀都不为负,并且
阅读全文
摘要:前言 好消息,CSP-S t4 出 DDP,并且有的人场上为了调 T3 的假算没写。。。 概述 其实是个挺简单的东西,就是如果一道题可以通过 dp 轻松解决,但是题目加上了每次询问修改一些信息的话,每次重新跑 dp 肯定是会寄寄的,所以我们需要一个更加快速的方式。 解决方法很简单,利用矩阵。如果 d
阅读全文
摘要:题意 数轴上有 $n$ 个村庄,现在可以建立不超过 $k$ 个基站,对于一个村庄,如果在不超过 $S_i$ 的范围内有基站,那么它就是被覆盖的。在村庄 $i$ 建立一个基站需要花费 $C_i$。如果一个村庄 $i$ 没有被覆盖,那么就需要付出 $W_i$ 的代价,求最小代价和。 Solution 要
阅读全文
摘要:题意 盲盒模球,每次拿出一个球,然后放入黑白球各一个,然后再拿一个。求最后拿出的球按顺序排列的序列个数。 Solution 考虑每一时刻黑白球的个数都不为负,所以考虑以黑球个数为横坐标,白球个数为纵坐标。这样我们对这里的操作进行一个转化: 先取一个白球,后取一个白球:相当于向斜右下对角线走一步; 先
阅读全文
摘要:前言 前情提要 概论 这类问题的特点是,本来不需要求代价,我却二分出一个代价从而间接的满足题目中的某些限制。最显著的标志,就是 ⌈恰好选 $k$ 个⌋ 的限制。 这样说比较抽象,来看这题: [国家集训队]Tree I 这题限制了白色边的数量。于是我们二分一个权值,把所有白边全部减去这个权值,然后做最
阅读全文
摘要:模拟赛题!惨遭 $\texttt{m}\color{red}{\texttt{aoweishou}}$ 爆切,以及假算的乱草。。。 题意 有一个网格,起初里面只有 1 或者 2。每一时刻,对于 2 不会改变,对于 1 如果上方和下方中有一个是 0,并且左边和右边有一个是 0,那么这个 1 会变成 0
阅读全文
摘要:题意 现求一个集合 $S\subseteq{1,2,\cdots,n}$,要求满足任意两个在此集合内的数 $a,b$,它们的差 $|a-b|\not ={x}$ 并且 $|a-b|\not ={y}$。求集合 $S$ 的最大大小。 Solution 感觉 $n$ 很大,$x,y$ 很小,总感觉就是状
阅读全文
摘要:题意 给定一个 $n \times m$ 的矩阵,你可以对每一列进行若干次循环移位。 求操作完成后每一行的最大值之和最大是多少。 Solution 考虑到 $n$ 的范围比较小,应该可以用状压。于是令 $dp_{i,s}$ 表示处理完前 $i$ 列,使 $s$ 集合中的行的最大值已经确定的最大值和最
阅读全文
摘要:题意 给你 $n$ 个数,每次询问给出一个 $w$,求有多少种选数的方式,使得每种数可以重复使用的情况下,使得加和在 $p$ 的剩余系下为 $w$。 Solution 首先考虑判断一个数 $v$ 是否可行,这样的话相当于要解决: $$ xv\equiv w\pmod p $$ 可以套路地转化成方程组
阅读全文
摘要:题意 给定一张 $n$ 个点的图,其中 $i$ 和 $j$ 两点间有 $c_{i,j}$ 种边可以连。求把这 $n$ 个点连成连通块的方案数是多少。 Solution 还是考虑拍在脸上的状压。 令 $f_S$ 表示点集 $S$ 中的点联通图的个数。如果我们考虑 $c_{i,j}=1$,那么容易想到这
阅读全文
摘要:题意 定义一个排列是好的,当且仅当对它冒泡排序时交换次数是下界: $$ \dfrac{1}{2}\sum_{i=1}^n|p_i-i| $$ 给定一个长度为 $n$ 的排列 $p$,求在所有的长度为 $n$ 的排列中有多少字典序大于 $p$ 的好的排列。 Solution 这是上课 $\texttt
阅读全文
摘要:题意 给你一个有向树形图,求拓扑序的个数。 Solution 本来想通过拓扑序直接跑 dp,发现假了,然后发现没有利用好这个树形图的性质。 既然是树形图,那我们先不考虑边的方向,当成一棵树。于是我们令 $dp_{i,j}$ 表示以 $i$ 为根的子树中拓扑序中 $i$ 是第 $j$ 个的方案数。然后
阅读全文
摘要:题意 给定一张图,每次只能选择一个与之相连的点中至多有一个点未选择的点,然后选择它。求有序选择 $k$ 个点的方案数,对 $k\in[0,n]$ 求解。 Solution 考虑选择点可以看成是删点,那么每次只有度数小于等于 $1$ 的点可以删掉。这样的话容易想到就是一个环(边双)是删不掉的,于是我们
阅读全文
摘要:题意 给一棵树,在给定的 $m$ 条带权边中选出若干条,使得每一个点最多包含于一个环。求选边的最大权值和。 Solution 相当于可以覆盖树上一条路径来获得特定价值。好吧真的是大炮题。 考虑定义 $dp_i$ 表示在以 $i$ 为根的子树中进行合法的覆盖所能得到的最大权值和。于是你考虑对于一条路径
阅读全文