10 2019 档案
摘要:【CF573E】Bear and Bowling 题面 "洛谷" 题解 首先有一个贪心的结论: 我们一次加入每个数,对于∀i,位置i的贡献为V_i = k_i\times a_i+b_i,其中k_i为位置i之前被选的数的个数,b_i为i之后被选的数的和。 那
阅读全文
摘要:【BZOJ3508】开灯 题面 "bzoj" 题解 其实变为目标操作和从目标操作变回来没有区别,我们考虑从目标操作变回来。 区间整体翻转(\text{Xor}\;1)有点难受,我们考虑将这个操作放在差分数组上,也就是说令a为原数组,c为差分数组,$c_i=a_{i 1}\text{Xor
阅读全文
摘要:【LG3322】[SDOI2015]排序 题面 "洛谷" 题解 交换顺序显然不影响答案,所以每种本质不同的方案就给答案贡献次数的阶乘。 从小往大的交换每次至多4中决策,复杂度O(4^n)。 代码 cpp include include include include include incl
阅读全文
摘要:【LG4397】[JLOI2014]聪明的燕姿 题面 "洛谷" 题解 考虑到约数和函数\sigma = \prod (1+p_i+...+p_i^{r_i}),直接爆搜把所有数搜出来即可。 爆搜过程和 "这道题" 一样,这里不再赘述。 代码 cpp include include include
阅读全文
摘要:【BZOJ4722】由乃 题面 "bzoj" 题解 考虑到区间长度为14时子集个数2^{14} 14\times 1000,由抽屉原理,区间长度最多为13(长度大于这个值就一定有解)。 那么对于一个区间我们可以暴力背包dp出来,然后bitset优化下就是$\frac {13\ti
阅读全文
摘要:【BZOJ3837】[PA2013]Filary 题面 "darkbzoj" 题解 考虑到模数为2时答案至少为\frac n2,这是我们答案的下界。 那么我们对于任意的一个数,它们答案集合中的就概率至少为\frac 12。 那么我们随机选出一个数,将这个数与其他数作差,那么将这些数分解质
阅读全文
摘要:【LG2567】[SCOI2010]幸运数字 题面 "洛谷" 题目大意: 问你区间 "L,R" 中有几个数是仅由6,8组成的数的倍数。 题解 首先考虑容斥。 但是这种数字去掉有倍数关系的数还有943个,还是无法直接容斥。 这时候可以借鉴一下meet\;in\;the\;middle的
阅读全文
摘要:【BZOJ3569】DZY Loves Chinese II 题面 "bzoj" 题目大意: 给你一张N(1\leq N\leq 10^5)个点M(1\leq M\leq 5\times 10^5)条边的无向图,有Q(1\leq Q\leq 5\times 10^4)次询问,每次询问问你
阅读全文
摘要:【BZOJ3711】Druzyny 题面 "bzoj" 题解 首先我们有一个O(n^2)的dp: 设f_i表示现在已经分好了1...i的组,且i作为一组的结尾的最大值,那么转移的话就是对于每个 $\max\limits_{k=j}^i c_k\leq i j+1\leq \min
阅读全文
摘要:【LG2605】[ZJOI2010]基站选址 题面 "洛谷" 题解 先考虑一下暴力怎么写,设f_{i,j}表示当前dp到i,且强制选i,目前共放置j个的方案数。 那么转移为$f_{i,j}=\min_{k=1}^{i 1} \{f_{k,j 1}+cost_{k,i}\}+c_i
阅读全文
摘要:【AGC009E】Eternal Average 题面 "洛谷" 题解 神仙题.jpg 我们把操作看成一棵k叉树,其中每个节点有权值,所有叶子节点(共n+m个)就是0或1。 出了叶子节点外的所有节点就代表一次合并,权值就是他们的平均值。 设一开始0点的深度分别为$x_1,x_2.
阅读全文
摘要:【AGC009C】Division into Two 题面 "洛谷" 题解 首先有一个比较显然的n^2算法: 设f_{i,j}表示A序列当前在第i个,B序列当前在第j个的方案数,发现i,j大小没有限制不是很好转移,于是再设一个g_{i,j}表示B序列当前在第i
阅读全文
摘要:【LG3647】[APIO2014]连珠线 题面 "洛谷" 题解 首先考虑一下蓝线连起来的情况,一定是儿子 父亲 另一个儿子或者是儿子 父亲 父亲的父亲。 而因为一开始只有一个点在当前局面上,将一条红边变为两条蓝边也只能在一对有父子关系的点之间加,所以第一种“儿子 父亲 另一个儿子”的情况实际上是不
阅读全文
摘要:【LG5504】[JSOI2011]柠檬 题面 "洛谷" 题解 考虑dp,令f_i表示dp到第i位且在第i位分段的最大值。 我们令题面中的s_i为a_i,那么对于一个转移点j,显然a_i=a_j,因为多余的颜色肯定无法产生贡献,不如不选。 令c_i为位置i
阅读全文
摘要:【CF55D】Beautiful numbers 题面 "洛谷" 题解 考虑到如果一个数整除所有数那么可以整除他们的lcm,而如果数x满足x\bmod Lcm(1,2...,9)=r,且r\bmod Lcm\{x有的数\}=0,那么这个数一定满足条件。 因为$Lcm(1,2...,9
阅读全文
摘要:【Wannafly挑战赛24E】旅行 题面 "牛客" 题解 首先有一个非常显然的dp:我们直接把s\rightarrow t的路径抠出来然后设f_{i,j}表示到第i个点,目前余数为j的方案数。 但是这样子复杂度显然是不对的,我们想办法快速合并对于某个点u,$s\righta
阅读全文
摘要:【LG3582】[POI2015]KIN 题面 "洛谷" 题解 这题维护区间的信息有点像最大子段和,我们往最大子段和上面靠。 对于一个颜色,我们有一个直观的想法就是将它一次出现的权值设为正,二次出现就设为负。 但是当区间中出现次数多于两次怎么办呢?我们可以考虑从左往右扫这个序列,这个数出现在最靠右的
阅读全文
摘要:【CF1142B】Lynyrd Skynyrd 题面 "洛谷" 题解 假设区间[l,r]内有一个循环位移,那么这个循环位移一定有一个最后的点,而这个点在循环位移中再往前移n 1个位置也一定在这个区间中。 那么我们将每一个点在它所在循环位移中前挪n 1个位置记下来,判断一下[l,r]中
阅读全文
摘要:【CF765F】Souvenirs 题面 "洛谷" 题解 我们可以发现,对于某个右端点i,左端点j在由i\rightarrow 1的过程中,每一段的答案是单调不增的,由这个性质,我们想办法维护出加入右端点i后的答案。 我们只考虑形如ja_i且j最大,这个可以用值域线段树维护。
阅读全文
摘要:【LG2839】[国家集训队]middle 题面 "洛谷" 题解 按照求中位数的套路,我们二分答案mid,将大于等于mid的数设为1,否则为 1。 若一个区间和大于等于0,则答案可以更大,反之亦然。 对于这个题,我们只要维护出[b+1,c 1]之间二分答案后的和,$[a,b]
阅读全文
摘要:【LG2154】[SDOI2009]虔诚的墓主人 题面 "洛谷" 题解 ~~如果您没有看懂题,请反复阅读题面及样例~~ 可以发现,对于某一个点,它的答案就是上下左右几个组合数乘起来。 这样直接做复杂度显然爆炸,考虑怎么优化这个东西。 我们可以固定左右,在某两个左右之间维护上下有多少个,这样子的话左右
阅读全文
摘要:【LG3783】[SDOI2017]天才黑客 题面 "洛谷" 题解 首先我们有一个非常显然的O(m^2)算法,就是将每条边看成点, 然后将每个点的所有入边和出边暴力连边跑最短路,我们想办法优化这里的连边。 具体怎么做呢,我们将所有入边和出边在\text{Trie}树上所对应的点放在一起按$d
阅读全文
摘要:【UVA1057】Routing 题面 "洛谷" 题解 有一个比较好想的dp就是f_{i,j}表示第一个点在i,第二个点在j的最小点数,但是直接搞不好转移。 考虑建出反图,那么j表示在反图上的点j其实是和正图上的是一样的。 这样子的话我们枚举出边转移: $$ f[v][u2]=f
阅读全文
摘要:【ARC098F】Donation 题面 "atcoder" 题意: 给定一张n个点,m条边的无向图。这张图的每个点有两个权值 a_i,b_i。 你将会从这张图中选出一个点作为起点,随后开始遍历这张图。 你能到达一个节点 i当且仅当你的手上有至少a_i元钱。当你到达一个节点i
阅读全文
摘要:【CF1042F】Leaf Sets 题面 "洛谷" 题解 对于一个根节点x,考虑其子树内的所有lca为它的叶子节点到它的距离d_1K,我们可以将i之前的所有叶子节点合并成一个大点,并以深度d_i向上合并,再将d_{i+1}...d_m向上合并即可。 这样子用数据结构维护复杂
阅读全文
摘要:【CF241E】Flights 题面 "洛谷" 题解 对于原来的图,如果一条边不出现在1到n的路径上面,直接ban掉即可。 那么考虑一条边u\rightarrow v,一定满足1\leq dis_v dis_u\leq 2,其中dis_u,dis_v表示1到u,v的最
阅读全文
摘要:【BZOJ2095】[Poi2010]Bridges 题面 "darkbzoj" 题解 首先可以想到二分答案,那么我们就是要求我们新图中给所有边定向是否存在欧拉回路。 而有向图存在欧拉回路的充要条件为所有顶点的入度等于出度且该图是连通图,我们考虑在这一点上做文章。 令一个点的入度减出度表示一个点的度
阅读全文