随笔分类 - 基础算法 -- 动态规划
摘要:【arc074e】RGB Sequence(动态规划) 题面 "atcoder" "洛谷" 翻译见洛谷 题解 直接考虑暴力$dp$,设$f[i][j][k][l]$表示当前考虑到第$i$位,最后一个红绿蓝色出现的位置是哪里,发现显然$i=max(j,k,l)$,所以只有三维了,直接$dp$即可。至于
阅读全文
摘要:AtCoder Grand Contest 010 A Addition 翻译 黑板上写了$n$个正整数,每次会擦去两个奇偶性相同的数,然后把他们的和写会到黑板上,问最终能否只剩下一个数。 题解 洛谷认为此题过水,已被隐藏。 B Boxes 翻译 有$n$个盒子排成了一圈,第$i$个盒子里有$a_i
阅读全文
摘要:【CF605E】Intergalaxy Trips(贪心,动态规划) 题面 "Codeforces" "洛谷" 有$n$个点,每个时刻第$i$个点和第$j$个点之间有$p_{ij}$的概率存在一条边。每个时刻可以沿着一条边走或者留在原地。求从$1$号点走到$n$号点的最优的期望时间。 题解 设$E(
阅读全文
摘要:【arc093f】Dark Horse(容斥原理,动态规划,状态压缩) 题面 "atcoder" 有 $2^n$ 名选手,编号为 $1$ 至 $2^n$ 。现在这 $2^n$ 名选手将进行 $n$ 轮淘汰赛,决出胜者。若 $x include include using namespace std;
阅读全文
摘要:【agc002f】Leftmost Ball(动态规划) 题面 "atcoder" "洛谷" 题解 我们从前往后依次把每个颜色按顺序来放,那么如果当前放的是某种颜色的第一个球,那么放的就会变成$0$号颜色,所以无论何时,$0$号颜色的数量不能少于其他颜色的数量。 可以设状态$f[i][j]$表示前面
阅读全文
摘要:【agc001e】BBQ HARD(动态规划) 题面 "atcoder" "洛谷" 题解 ~~这些agc都是写的整场的题解,现在还是把其中一些题目单独拿出来发~~ 这题可以说非常妙了。 我们可以把这个值看做在网格图上的一点$( a[i], b[i])$走到$(a[j],b[j])$的方案数。 而网格
阅读全文
摘要:【BZOJ4903】【UOJ 300】吉夫特(卢卡斯定理,动态规划) 题面 "UOJ" "BZOJ:给的UOJ的链接......" 题解 首先模的质数更小了,直接给定了$2$。当然是卢卡斯定理了啊。 考虑一个组合数在什么情况下会是一个奇数。$Lucas(n,m)\equiv Lucas(n/2,m/
阅读全文
摘要:【UOJ 275】组合数问题(卢卡斯定理,动态规划) 题面 "UOJ" 题解 数据范围很大,并且涉及的是求值,没法用矩阵乘法考虑。 发现$k$的限制是,$k$是一个质数,那么在大组合数模小质数的情况下可以考虑使用卢卡斯定理。 卢卡斯定理写出来是$Lucas(n,m)=Lucas(n/K,m/K) L
阅读全文
摘要:【BZOJ4870】组合数问题(动态规划,矩阵快速幂) 题面 "BZOJ" "洛谷" 题解 显然直接算是没法做的。但是要求的东西的和就是从$nk$个物品中选出模$k$意义下恰好$r$个物品的方案数。$n$的范围这么大,往快速幂的方面靠。设$f[i][j]$表示从前$i$个物品中选了模$k$意义下$j
阅读全文
摘要:AtCoder Grand Contest 009 A Multiple Array 翻译 "见洛谷" 题解 从后往前考虑。 cpp include include using namespace std; define ll long long define MAX 100100 inline i
阅读全文
摘要:AtCoder Grand Contest 008 A Simple Calculator 翻译 有一个计算器,上面有一个显示按钮和两个其他的按钮。初始时,计算器上显示的数字是$x$,现在想把这个数字给变成$y$。两个按钮的作用分别是让这个数加一和把这个数取反。问最少的按按钮的次数。 题解 神仙特判
阅读全文
摘要:AtCoder Grand Contest 007 A Shik and Stone 翻译 "见洛谷" 题解 傻逼玩意 D Shik and Game 翻译 (什么傻吊题面) 有一个数轴,初始情况下玩家在$0$位置,出口在$E$位置,数轴上还有$n$只熊,你只要到了它的位置,再过$T$个单位时间它所
阅读全文
摘要:【BZOJ5281】Talent Show(分数规划) 题面 "BZOJ" "洛谷" 题解 二分答案直接就是裸的分数规划,直接跑背包判断是否可行即可。
阅读全文
摘要:【BZOJ3872】Ant colony(二分,动态规划) 题面 又是权限题。。。 Description There is an entrance to the ant hill in every chamber with only one corridor leading into (or ou
阅读全文
摘要:【BZOJ2067】SZN(二分,动态规划,贪心) 题面 "权限题额" Description String Toys joint stock 公司需要你帮他们解决一个问题. 他们想制造一个没有环的连通图模型. 每个图都是由一些顶点和特定数量的边构成. 每个顶点都可以连向许多的其他顶点.一个图是连通
阅读全文
摘要:【BZOJ2830/洛谷3830】随机树(动态规划) 题面 "洛谷" 题解 先考虑第一问。 第一问的答案显然就是所有情况下所有点的深度的平均数。 考虑新加入的两个点,一定会删去某个叶子,然后新加入两个深度为原先叶子$+1$的点。 那么新加入的叶子的深度的期望是未加入之前的期望+1,假设$f_i$为$
阅读全文
摘要:AtCoder Grand Contest 005 A STring 翻译 给定一个只包含$ST$的字符串,如果出现了连续的$ST$,就把他删去,然后所有位置前移。问最后剩下的串长。 题解 模拟栈,和维护括号一样的。 cpp include include using namespace std;
阅读全文
摘要:题面 "BZOJ" "洛谷" 题解 和 "这题" 区别不是很大吧。 基本上拿过来改一下就做完了。 cpp include include include include include include include include include using namespace std; defi
阅读全文
摘要:【BZOJ4774】修路(动态规划,斯坦纳树) 题面 "BZOJ" 题解 先讲怎么求解最小斯坦纳树。 先明白什么是斯坦纳树。 斯坦纳树可以认为是最小生成树的一般情况。最小生成树是把所有给定点都要加入到联通块中。而斯坦纳树不一样,斯坦纳树只需要把指定点集中的所有点全部加入到联通块中,并且允许使用点集以
阅读全文
摘要:【BZOJ1864】三色二叉树(动态规划) 题面 "BZOJ" 题解 首先把树给构出来。 设$f[i][0/1]$表示当前节点$i$,是否是绿色节点的子树中最大/最小的绿色节点的个数和。 转移很显然。 cpp include include include include include inclu
阅读全文