随笔分类 - 动态规划 -- 状态压缩
摘要:【BZOJ5470】[FJOI2018]所罗门王的宝藏() 题面 "BZOJ" "洛谷" 有个变量,给定组限制,每次告诉你,问是否有可行解。 题解 一道很呆的题目,我都不知道应该算什么类型了。。。 把行列拆开,对于一个限制,连边行到
阅读全文
摘要:【THUWC2017】随机二分图(动态规划) 题面 "BZOJ" "洛谷" 题解 如果每天边的限制都是的概率出现或者不出现的话,可以把边按照二分图左侧的点的编号排序,然后设表示左边的前个点中,匹配了右侧的点集的方案数。每次枚举一条边进行转移。为了防止在点集中重
阅读全文
摘要:【BZOJ2576】[JSOI2011]序的计数 (动态规划) 题面 "BZOJ" 题解 首先构建一个新的虚拟节点连接所有目标节点,强行将其作为第一个被访问的节点,这样子就解决了图不连通的问题。 除了目标节点外,所有其他点都可以缩成一个节点。 这样子的图实际上只有个节点,个目标节
阅读全文
摘要:【BZOJ5019】[SNOI2017]遗失的答案(FWT,动态规划) 题面 "BZOJ" 题解 发现最多分解为不超过个本质不同质数的乘积。 而和分别就是每个质因子的最大次幂和最小次幂的乘积。 那么考虑一个状压,设表示最小/最大次幂
阅读全文
摘要:【BZOJ1879】[SDOI2009]Bill的挑战(动态规划) 题面 "BZOJ" "洛谷" 题解 本来还想着容斥来着,这个数据范围直接暴力就好。设表示当前填到了第位,和这些串匹配上的方案数。暴力转移即可。 cpp include include include u
阅读全文
摘要:【BZOJ1294】[SCOI2009]围豆豆(动态规划,状压) 题面 "BZOJ" "洛谷" 题解 首先考虑如何判断一个点是否在一个多边形内(不一定是凸的),我们从这个点开始,朝着一个方向画一条射线,看看它和这个多边形的变相交了几次,如果是奇数次那么一定在这个多边形内,否则不在。 这个可以感性理解
阅读全文
摘要:【BZOJ1093】[ZJOI2007]最大半联通子图(Tarjan,动态规划) 题面 "BZOJ" "洛谷" 洛谷的讨论里面有一个好看得多的题面 题解 显然强连通分量对于题目是没有任何影响的,直接缩点就好了。 那么接下来剩下的是一个,既然任意两点之间都有一条路径连接,在上的体现
阅读全文
摘要:【arc093f】Dark Horse(容斥原理,动态规划,状态压缩) 题面 "atcoder" 有 名选手,编号为 至 。现在这 名选手将进行 轮淘汰赛,决出胜者。若 $x include include using namespace std;
阅读全文
摘要:【BZOJ4903】【UOJ 300】吉夫特(卢卡斯定理,动态规划) 题面 "UOJ" "BZOJ:给的UOJ的链接......" 题解 首先模的质数更小了,直接给定了。当然是卢卡斯定理了啊。 考虑一个组合数在什么情况下会是一个奇数。$Lucas(n,m)\equiv Lucas(n/2,m/
阅读全文
摘要:AtCoder Grand Contest 009 A Multiple Array 翻译 "见洛谷" 题解 从后往前考虑。 cpp include include using namespace std; define ll long long define MAX 100100 inline i
阅读全文
摘要:题面 "BZOJ" "洛谷" 题解 和 "这题" 区别不是很大吧。 基本上拿过来改一下就做完了。 cpp include include include include include include include include include using namespace std; defi
阅读全文
摘要:【BZOJ4774】修路(动态规划,斯坦纳树) 题面 "BZOJ" 题解 先讲怎么求解最小斯坦纳树。 先明白什么是斯坦纳树。 斯坦纳树可以认为是最小生成树的一般情况。最小生成树是把所有给定点都要加入到联通块中。而斯坦纳树不一样,斯坦纳树只需要把指定点集中的所有点全部加入到联通块中,并且允许使用点集以
阅读全文
摘要:【BZOJ1226】学校食堂(动态规划,状态压缩) 题面 "BZOJ" "洛谷" 题解 发现很小,意味着当前这个人最坏情况下也只有后面的一小部分人在他前面拿到饭。 所以整个结果的大致顺序是不会变化的。 对于一个人,他要占用的时间之和前面那个拿饭的人有关。 而他前面那个拿饭的人在队列中只有两种情
阅读全文
摘要:【BZOJ1494】【NOI2007】生成树计数(动态规划,矩阵快速幂) 题面 Description 最近,小栋在无向连通图的生成树个数计算方面有了惊人的进展,他发现: ·n个结点的环的生成树个数为n。 ·n个结点的完全图的生成树个数为n^(n 2)。这两个发现让小栋欣喜若狂,由此更加坚定了他继续
阅读全文
摘要:【BZOJ5299】【CQOI2018】解锁屏幕(动态规划,状态压缩) 题面 "BZOJ" "洛谷" Description 使用过Android手机的同学一定对手势解锁屏幕不陌生。Android的解锁屏幕由3x3个点组成,手指在屏幕上画一条 线将其中一些点连接起来,即可构成一个解锁图案。如下面三个
阅读全文
摘要:【NOIP2017】宝藏(状态压缩,动态规划) 题面 "洛谷" 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度。 小明决心亲自前往挖掘所有宝藏屋中的宝藏。但是,每个宝藏屋距离地面都很远, 也就是
阅读全文
摘要:【BZOJ2004】公交线路(动态规划,状态压缩,矩阵快速幂) 题面 "BZOJ" 题解 看到这么小 不难想到状态压缩 看到这么大,不难想到矩阵快速幂 那么,我们来考虑朴素的 设表示当前位置为,前面的个位置的状态为 其中,状态的含义是某个公
阅读全文
摘要:题面 "题面中有图片的存在,所以就贴个地址把" 题解 简单题,,,, 原来一直觉得不会做。。。 现在发现是一道傻逼题 暴力压两行的状态 发现就需要滚一维。 然后暴力检查一下状态的可行性 DP检查MAX就可以了 cpp include include include include include i
阅读全文
摘要:题面 "这种傻逼题懒得粘贴了。。。" 题解 傻逼题 表示当前第列,当前放置状态为,已经放了个 暴力判断状态合法性,暴力判断转移合法性,然后统计答案 cpp include include include include include include inc
阅读全文
摘要:【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划) 题面 Description 《集合论与图论》这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中。同学们不喜欢这种具有枚举性 质的
阅读全文