随笔分类 - OJ -- BZOJ
摘要:【BZOJ4137】火星商店问题(线段树分治,可持久化Trie) 题面 "洛谷" BZOJ权限题 题解 显然可以树套树,外层线段树,内层可持久化Trie来做。 所以我们需要更加优美的做法。——线段树分治。 什么叫做线段树分治呢? 我们发现每次询问都是区间的形式,看到区间我们就可以想到线段数。 我们接
阅读全文
摘要:【BZOJ3712】Fiolki(并查集重构树) 题面 "BZOJ" 题解 很神仙的题目。 我们发现所有的合并关系构成了一棵树。 那么两种不同的东西如果产生反应,一定在两个联通块恰好联通的时候反应。 那么,我们按照并查集的合并顺序,类似于克鲁斯卡尔重构树的方法构建一个并查集重构树, 发现所有的反应恰
阅读全文
摘要:【BZOJ2151】种树(贪心) 题面 "BZOJ" 题解 如果没有相邻不能选的限制,那么这就是一道傻逼题。 只需要用一个堆维护一下就好了。 现在加上了相邻点的限制,那么我们就对于当前位置加入一个撤销操作。 怎么撤销呢? 如果我们选择了一个点,那么我们就把他前后两个位置删去, 然后将当前点合并为$a
阅读全文
摘要:【BZOJ4596】黑暗前的幻想乡(矩阵树定理,容斥) 题面 "BZOJ" 有$n$个点,要求连出一棵生成树, 指定了一些边可以染成某种颜色,一共$n 1$种颜色, 求所有颜色都出现过的生成树方案数。 题解 一脸的容斥啊。 先矩阵树定理暴力算出所有符合条件的生成树,然后减去$n 2$中颜色的方案数,
阅读全文
摘要:【BZOJ1951】古代猪文(CRT,卢卡斯定理) 题面 "BZOJ" "洛谷" 题解 要求什么很显然吧。。。 $$Ans=G^{\sum_{k|N}{C_N^k}}$$ 给定的模数是一个质数,要求解的东西相当于是上面那坨东西的结果对于$\varphi$的取值。 但是$\varphi$不是质数,不好
阅读全文
摘要:【BZOJ3162】独钓寒江雪(树哈希,动态规划) 题面 "BZOJ" 题解 忽然翻到这道题目,突然发现就是前几天一道考试题目。。。 题解: 树哈希,既然只考虑这一棵树,那么,如果两个点为根是同构的, 他们的重心相同,所以直接找出树的重心,以重心为根进行转移 提前预处理每一棵子树的哈希值,因为相同的
阅读全文
摘要:题面 "BZOJ" 题解 动态点分治什么的完全不记得了。这回重新写一写。 首先我们把点分树给建出来。 操作只有两种,修改和询问距离某个点的距离不超过$k$的点的和。 两点之间的距离可以树链剖分之类的算,这里不再重复。 考虑如何计算答案。 对于每个点,把对于它的点分树上所有祖先的贡献给加好。 因为要方
阅读全文
摘要:【BZOJ1226】学校食堂(动态规划,状态压缩) 题面 "BZOJ" "洛谷" 题解 发现$b$很小,意味着当前这个人最坏情况下也只有后面的一小部分人在他前面拿到饭。 所以整个结果的大致顺序是不会变化的。 对于一个人,他要占用的时间之和前面那个拿饭的人有关。 而他前面那个拿饭的人在队列中只有两种情
阅读全文
摘要:【BZOJ2216】Lightning Conductor(动态规划) 题面 "BZOJ,然而是权限题" "洛谷" 题解 $\sqrt {|i j|}$似乎没什么意义,只需要从前往后做一次再从后往前做一次就好了。 只考虑从前往后,把给定的式子移项,可以得到 $p\ge a[j] a[i]+\sqrt
阅读全文
摘要:【BZOJ4709】柠檬(动态规划,单调栈) 题面 "BZOJ" 题解 从左取和从右取没有区别,本质上就是要分段。 设$f[i]$表示前$i$个位置的最大值。 那么相当于我们枚举一个前面的位置$j$,然后找到这一段中最大的$s_0t^2$ 但是这样子很不优秀。 我们贪心的思考一下,既然这一段最后加起
阅读全文
摘要:【BZOJ3203】保护出题人(动态规划,斜率优化) 题面 "BZOJ" "洛谷" 题解 在最优情况下,肯定是存在某只僵尸在到达重点的那一瞬间将其打死 我们现在知道了每只僵尸到达终点的时间,因为僵尸要依次打死。 所以我们假设血量的前缀和是$s_i$ 那么我么必须在它到达的时间$t_i$之前打出总共不
阅读全文
摘要:【BZOJ3437】小P的牧场(动态规划,斜率优化) 题面 "BZOJ" 题解 考虑暴力$dp$,设$f[i]$表示强制在$i$处建立控制站的并控制$[1..i]$的最小代价。 很显然,枚举上一个控制站的位置$j$ $f[i]=min(f[j]+Calc(i,j)+a[i])$,其中$Calc(i,
阅读全文
摘要:【BZOJ3156】防御准备(动态规划,斜率优化) 题面 "BZOJ" 题解 从右往左好烦啊,直接$reverse$一下再看题。 设$f[i]$表示第$i$个位置强制建立检查站时,前面都满足条件的最小代价 $f[i]=min(f[j]+sum[i j 1])+A[i]$ 即枚举上一个检查站建立的位置
阅读全文
摘要:【BZOJ2727】双十字(动态规划,树状数组) 题面 "BZOJ" "洛谷" 题解 我们去年暑假的时候考试考过。 我当时写了个大暴力混了$70$分。。。。 大暴力是这么写的: 预处理每个位置向左右/上/下能够拓展的最多的长度(左右相当于分别求然后取$min$) 接着枚举双十字的中轴线,所在的列 然
阅读全文
摘要:【BZOJ4361】isn(动态规划,容斥) 题面 "BZOJ" 题解 首先我们如果确定了一个不降序列,假设它的长度为$i$, 那么可行的方案数为$i (n i)!$,但是这样有一些非法的情况,即删掉最后一个数之前已经是有序的了。 那么设$g[i]$表示长度为$i$的不降序列的总数 因为所有长度为$
阅读全文
摘要:【BZOJ1068】压缩(动态规划) 题面 "BZOJ" "洛谷" 题解 比较简单的$dp$ 设$f[i][j]$表示当前已经匹配到了原串的第$i$个位置,上一个$M$在第$j$个字符之后的方案数。 每次从当前$f[i][j]$位置转移出去,转移只有两种。 一种是直接匹配一位,也就是$f[i][j]
阅读全文
摘要:【BZOJ4654】【NOI2016】国王饮水记(动态规划,斜率优化) 题面 "BZOJ" "洛谷" 题解 首先肯定是找性质。 明确一点, 比$h_1$小的没有任何意义 。 所以我们按照$h$排序,那么$h_1$就是当前$1$号位置的水量。 假设我们使用的次数不受到任何限制,我们思考怎么样才是最优。
阅读全文
摘要:【BZOJ2138】stone(线段树,Hall定理) 题面 "BZOJ" 题解 考虑一个暴力。 我们对于每堆石子和每个询问,显然是匹配的操作。 所以可以把石子拆成$a_i$个,询问点拆成$K_i$个,这样就是每次进行一次二分图的匹配。 当然可以用网络流+线段树优化连边来做,但是这样复杂度太高。 还
阅读全文
摘要:【BZOJ4651】【NOI2016】网格(Tarjan,哈希) 题面 "BZOJ" "洛谷" 题解 首先把题目稍微变得好说一些,给定一个网格,已经删去了若干个格子 问最少删去多少个格子使得图不连通。 这题的关键是要看出答案一定只有$ 1,0,1,2$ 证明一下一定存在答案不超过二。 在不是无解的情
阅读全文
摘要:【BZOJ4200】【NOI2015】小园丁与老司机(动态规划,网络流) 题面 "BZOJ权限题,洛谷链接" 题解 一道二合一的题目 考虑第一问。 先考虑如何计算六个方向上的第一个点。 左右上很好考虑,只需要按照$x$或者$y$轴排序就行了。 对于$45$度的斜角,两点一定在同一条直线上。 这条直线
阅读全文

浙公网安备 33010602011771号