随笔分类 - Source---各省省选
摘要:题面 "洛谷" 题解 实际上是各个环之间的森林上的链不重复覆盖边的问题。 原问题是不能覆盖重边的,但是我们这里假设可以覆盖重边,一条边不覆盖就等价于覆盖一条重边, 那么问题转化为覆盖树上所有边有多少种方法。 注意到树上某个点的方案数与其他点无关,而只与自己的度数有关,也就是说一个点的所有边进行不同的
阅读全文
摘要:【LG4437】[HNOI/AHOI2018]排列 题面 "洛谷" 题解 题面里这个毒瘤的东西我们转化一下: 对于$\forall k,j$,若$p_k=a_{p_j}$,则$kW_{ba}$则$\frac{W_a}{m_1} include include include include incl
阅读全文
摘要:【LG5330】[SNOI2019]数论 题面 "洛谷" 题目大意: 给定集合$\mathbb {A,B}$ 问有多少个小于$T$的非负整数$x$满足:$x$除以$P$的余数属于$\mathbb A$且$x$除以$Q$的余数属于$\mathbb B$。 其中$1\leq |\mathbb A|,|\
阅读全文
摘要:【LG3322】[SDOI2015]排序 题面 "洛谷" 题解 交换顺序显然不影响答案,所以每种本质不同的方案就给答案贡献次数的阶乘。 从小往大的交换每次至多$4$中决策,复杂度$O(4^n)$。 代码 cpp include include include include include incl
阅读全文
摘要:【LG2567】[SCOI2010]幸运数字 题面 "洛谷" 题目大意: 问你区间$ "L,R" $中有几个数是仅由$6,8$组成的数的倍数。 题解 首先考虑容斥。 但是这种数字去掉有倍数关系的数还有$943$个,还是无法直接容斥。 这时候可以借鉴一下$meet\;in\;the\;middle$的
阅读全文
摘要:【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
阅读全文
摘要:【LG5504】[JSOI2011]柠檬 题面 "洛谷" 题解 考虑$dp$,令$f_i$表示$dp$到第$i$位且在第$i$位分段的最大值。 我们令题面中的$s_i$为$a_i$,那么对于一个转移点$j$,显然$a_i=a_j$,因为多余的颜色肯定无法产生贡献,不如不选。 令$c_i$为位置$i$
阅读全文
摘要:【LG2154】[SDOI2009]虔诚的墓主人 题面 "洛谷" 题解 ~~如果您没有看懂题,请反复阅读题面及样例~~ 可以发现,对于某一个点,它的答案就是上下左右几个组合数乘起来。 这样直接做复杂度显然爆炸,考虑怎么优化这个东西。 我们可以固定左右,在某两个左右之间维护上下有多少个,这样子的话左右
阅读全文
摘要:【LG3783】[SDOI2017]天才黑客 题面 "洛谷" 题解 首先我们有一个非常显然的$O(m^2)$算法,就是将每条边看成点, 然后将每个点的所有入边和出边暴力连边跑最短路,我们想办法优化这里的连边。 具体怎么做呢,我们将所有入边和出边在$\text{Trie}$树上所对应的点放在一起按$d
阅读全文
摘要:【LG4248】[AHOI2013]差异 题面 "洛谷" 题解 "后缀数组版做法戳我" 我们将原串$reverse$,根据后缀自动机的性质,两个后缀的$lcp$一定是我们在反串后两个前缀的$lca$。 那么原式不就是求树上两两点对的距离和, 树上一条边的权值可以通过差分求出,就是$i.len i.f
阅读全文
摘要:【BZOJ1011】[HNOI2008]遥远的行星 题面 "bzoj" "洛谷" 题解 乱搞题。。。 主要是要利用“只要结果的相对误差不超过5%即可”这个条件。 对于第$i$个行星,我们记$x=\lfloor a i\rfloor$,对他有贡献的区间为$[1,x]$。 我们统计时,将区间$[1,x]
阅读全文
摘要:【BZOJ1009】[HNOI2008]GT考试 题面 "bzoj" "洛谷" 题解 设$f_{i,j}$表示长串匹配到$i$,短串匹配到$j$的方案数。 那么我们如何转移呢? 很显然,我们每次匹配时添加字母,可能会失配或者重新匹配到原串的一个地方。 我们预处理出一个矩阵$g_{i,j}$表示短串第
阅读全文
摘要:【BZOJ1008】[HNOI2008]越狱 题面 "bzoj" 题解 首先,所有选的方案数为$M^N$。 再减去没人越狱的方案数$M\times (M 1)^{N 1}$。 所以有 $$Ans=M^N M\times (M 1)^{N 1}$$
阅读全文
摘要:【BZOJ1007】[HNOI2008]水平可见直线 题面 "bzoj" "洛谷" 题解 这题是用来搞笑的吧。。。 一眼看来就是半平面交啊,结果发现是个弱化版半平面交。 就按照半平面交的方法就行了。 代码 cpp include include include include include inc
阅读全文
摘要:【BZOJ1005】[HNOI2008]明明的烦恼 题面 "bzoj" "洛谷" 题解 前置芝士: $prufer$序列 "戳这里" 关于此题 设有度数限制的点的个数是$cnt$,度数为$d[i]$,令$sum=\sum_{i=1}^{cnt}(d[i] 1)$ 不同排列的个数为 $$ C_{n 2
阅读全文
摘要:【BZOJ1003】[ZJOI2006]物流运输 题面 "洛谷" "bzoj" 题解 设$f_i$表示前$i$天花费的最小值。 我们设第$l,r$天$1$到$m$的距离为$dis_{l,r}$,这个可以$n^2$遍最短路求出。 那么转移就很显然了: $$ f_i=\min_{j=0}^{i 1} f
阅读全文
摘要:【LG3295】[SCOI2016]萌萌哒 题面 "洛谷" 题解 考虑现在我们如果一次只是限定两个位置相等该怎么做, 直接将这些位置用并查集并起来然后答案就是 $$ ans= \begin{cases} 10 & n=1\\ 9\times 10^{t 1} & \text{otherwise} \
阅读全文
摘要:【BZOJ1002】轮状病毒 题面 "bzoj" 题解 统计个数显然直接矩阵树定理,找规律 "截这里" 打标如下:
阅读全文
摘要:【LG3722】[HNOI2017]影魔 题面 "洛谷" 题解 先使用单调栈求出$i$左边第一个比$i$大的位置$lp_i$,和右边第一个比$i$大的位置$rp_i$。 考虑$i$对答案的贡献,当且仅当$i$作为区间$[x+1,y 1]$的最大值时,$i$才对点对$(x,y)$有贡献。 根据题意,第
阅读全文
摘要:【LG3721】[HNOI2017]单旋 题面 "洛谷" 题解 20pts 直接模拟$spaly$的过程即可。 100pts 可以发现单旋最大、最小值到根,手玩是有显然规律的,发现只需要几次$link,cut$,那么我们维护原树的父子关系以及一颗$LCT$。 对于插入操作,由于插入的值肯定在前驱的右
阅读全文