随笔分类 -  OJ -- Uoj

摘要:【UOJ 33】【UR 2】树上GCD(长链剖分,分块) 题面 "UOJ" 题解 首先不求恰好,改为求$i$的倍数的个数,最后容斥一下就可以解决了。 那么我们考虑枚举一个$LCA$位置,在其两棵不同的子树中选择两个点,那么贡献就是这两段的$gcd$。 那么发现要统计的东西类似于$u$的子树中,深度为 阅读全文
posted @ 2019-06-19 08:28 小蒟蒻yyb 阅读(813) 评论(0) 推荐(1)
摘要:【UOJ 32】【UR 2】跳蚤公路(最短路) 题面 "UOJ" 题解 不难发现要求的就是是否存在负环。也就是我们只需要找到所有的负的简单环,很容易就可以想到维护路径上和$x$相关的内容,即维护一下$u$到$v$路径上,含有$kx$的路径的最小的$b$。这个可以用$Floyd$在$O(n^5)$的复 阅读全文
posted @ 2019-06-18 19:40 小蒟蒻yyb 阅读(764) 评论(1) 推荐(2)
摘要:【WC2018】即时战略(动态点分治,替罪羊树) 题面 "UOJ" 题解 其实这题我也不知道应该怎么确定他到底用了啥。只是想法很类似就写上了QwQ。 首先链的部分都告诉你要特殊处理那就没有办法只能特殊处理了QWQ。 首先听说有一种均摊$log$的$LCT$做法。 即每次随便$explore$一个点, 阅读全文
posted @ 2019-03-07 20:44 小蒟蒻yyb 阅读(472) 评论(0) 推荐(3)
摘要:【UOJ 236】[IOI2016]railroad(欧拉回路,最小生成树) 题面 "UOJ" 题解 把速度看成点,给定的路段看成边,那么现在就有了若干边,然后现在要补上若干边,以及一条$[inf,$使得原图存在欧拉回路,那么就变成了求从大往小连边的边长的最小值。 而欧拉回路每个点被来回覆盖的次数左 阅读全文
posted @ 2019-03-02 21:16 小蒟蒻yyb 阅读(673) 评论(0) 推荐(0)
摘要:【UOJ 177】欧拉回路 题面 "UOJ" 题解 首先图不连通就没啥好搞的了。 对于无向图而言,每个点度数为偶数。 对于有向图而言,每个点入度等于出度。 然后就是一本通上有的做法,直接$dfs$一遍就好了。。 cpp include include using namespace std; def 阅读全文
posted @ 2019-03-01 22:39 小蒟蒻yyb 阅读(449) 评论(0) 推荐(0)
摘要:【UOJ 311】【UNR 2】积劳成疾(动态规划) "UOJ" Solution 考虑最大值分治解决问题。每次枚举最大值所在的位置,强制不能跨过最大值,左右此时不会影响,可以分开考虑。 那么设$f[i][j]$表示长度为$i$,且最大值不超过$j$的所有方案之和。 因为最大值有多个,所以我们钦定每 阅读全文
posted @ 2019-02-14 09:20 小蒟蒻yyb 阅读(306) 评论(0) 推荐(0)
摘要:【UOJ 450】【集训队作业2018】复读机(生成函数,单位根反演) 题面 "UOJ" 题解 似乎是$\mbox{Anson}$爷的题。 $d=1$的时候,随便怎么都行,答案就是$k^n$。 $d=2$的时候,可以做一个$dp$,设$f[i][j]$表示前$i$个复读机选了$j$个时间的方案数。 阅读全文
posted @ 2019-01-17 22:43 小蒟蒻yyb 阅读(925) 评论(1) 推荐(0)
摘要:【UOJ 246】套路(动态规划) 题面 "UOJ" 题解 假如答案的选择的区间长度很小,我们可以做一个暴力$dp$计算$s(l,r)$,即$s(l,r)=min(s(l+1,r),s(l,r 1),abs(a_r a_l))$。 我们发现$s(l,r)\le \frac{m}{r l+1}$,那么 阅读全文
posted @ 2019-01-17 18:05 小蒟蒻yyb 阅读(424) 评论(0) 推荐(0)
摘要:【BZOJ5416】【NOI2018】冒泡排序(动态规划) 题面 "BZOJ" "洛谷" "UOJ" 题解 考场推出了就是两个上升子序列,并且最长下降子序列长度不超过$2$。。。然后大力暴力状压$dp$混了$44$分。。。这个结论并不是很难证明,考虑一下冒泡排序的过程就好了。 实际上$O(n^2)$ 阅读全文
posted @ 2019-01-06 16:57 小蒟蒻yyb 阅读(569) 评论(0) 推荐(0)
摘要:【UOJ 340】【清华集训2017】小 Y 和恐怖的奴隶主(矩阵快速幂,动态规划) 题面 "UOJ" "洛谷" 题解 考虑如何暴力$dp$。 设$f[i][a][b][c]$表示当前到了第$i$次攻击,还剩下的$1,2,3$血的奴隶主个数为$a,b,c$的概率,每次考虑打到了哪里,做一个转移。 这 阅读全文
posted @ 2019-01-05 20:32 小蒟蒻yyb 阅读(499) 评论(0) 推荐(0)
摘要:【UOJ 422】【集训队作业2018】小Z的礼物(min max容斥,轮廓线dp) 题面 "UOJ" 题解 ~~毒瘤xzy,怎么能搬这种题当做WC模拟题QwQ~~ 一开始开错题了,根本就不会做。 后来发现是每次任意覆盖相邻的两个,那么很明显就可以套$min max$容斥。 要求的就是$max(Al 阅读全文
posted @ 2019-01-03 19:33 小蒟蒻yyb 阅读(1116) 评论(5) 推荐(1)
摘要:【APIO2018】新家(线段树) 题面 "UOJ" "洛谷" "BZOJ" 题解 ~~论比赛时想不到二分的危害,就只能Cu滚粗~~ 既然不要在线,那么考虑离线做法。 既然时间是区间,那么显然按照时间顺序处理答案。 显然 答案具有可二分性,那么对于当前位置而言,我们唯一要确定的就是$[x mid,x 阅读全文
posted @ 2018-12-31 11:21 小蒟蒻yyb 阅读(659) 评论(0) 推荐(1)
摘要:【CTSC2018】暴力写挂(边分治,虚树) 题面 "UOJ" "BZOJ" "洛谷" 题解 发现第二棵树上的$LCA$的深度这玩意没法搞,那么枚举在第二棵树上的$LCA$。 然后剩下的部分就是$dep[x]+dep[y] dep[lca]$ 这个玩意乱搞一下,就是$\frac{1}{2}(dep[ 阅读全文
posted @ 2018-12-29 19:29 小蒟蒻yyb 阅读(1099) 评论(2) 推荐(0)
摘要:【WC2018】通道(边分治,虚树,动态规划) 题面 "UOJ" "洛谷" 题解 既然是三棵树,那么显然就是找点什么东西来套个三层。 一棵树怎么做?入门dp。 两棵树?假设在第一棵树中的深度为$dep$。在第一棵树中枚举$LCA$,因为两点之间距离可以转化为两点深度和减去两倍$LCA$的深度,而已知 阅读全文
posted @ 2018-12-29 08:15 小蒟蒻yyb 阅读(982) 评论(0) 推荐(0)
摘要:【WC2018】州区划分(FWT,动态规划) 题面 "UOJ" "洛谷" 题解 首先有一个暴力做法(就有$50$分了) 先$O(2^nn^2)$预处理出每个子集是否合法,然后设$f[S]$表示当前的答案,每次枚举一个子集进行转移,得到方程:$\displaystyle f[S]=(\frac{1}{ 阅读全文
posted @ 2018-12-28 14:48 小蒟蒻yyb 阅读(736) 评论(0) 推荐(0)
摘要:【BZOJ3821/UOJ46】玄学(二进制分组,线段树) 题面 "BZOJ" "UOJ" 题解 呜,很好的题目啊QwQ。 离线做法大概可以线段树分治,或者直接点记录左右两次操作时的结果,两个除一下就可以直接计算。 强制在线的话,一般而言,分治在线就弄成二进制分组。把所有修改操作进行二进制分组,每次 阅读全文
posted @ 2018-12-08 15:51 小蒟蒻yyb 阅读(931) 评论(0) 推荐(1)
摘要:【BZOJ4738/UOJ 276】汽水(点分治,分数规划) 题面 "BZOJ" "UOJ" 题解 今天考试的题目,虽然说是写完了,但是感觉还是半懂不懂的来着。 代码基本照着$Anson$爷的码的,orz。(然后Anson爷的UOJrk1不保了) 首先拿到这道题目的一个比较显然的思路就是分数规划二分 阅读全文
posted @ 2018-12-01 20:43 小蒟蒻yyb 阅读(583) 评论(3) 推荐(0)
摘要:【BZOJ4903】【UOJ 300】吉夫特(卢卡斯定理,动态规划) 题面 "UOJ" "BZOJ:给的UOJ的链接......" 题解 首先模的质数更小了,直接给定了$2$。当然是卢卡斯定理了啊。 考虑一个组合数在什么情况下会是一个奇数。$Lucas(n,m)\equiv Lucas(n/2,m/ 阅读全文
posted @ 2018-09-26 10:44 小蒟蒻yyb 阅读(571) 评论(0) 推荐(0)
摘要:【UOJ 275】组合数问题(卢卡斯定理,动态规划) 题面 "UOJ" 题解 数据范围很大,并且涉及的是求值,没法用矩阵乘法考虑。 发现$k$的限制是,$k$是一个质数,那么在大组合数模小质数的情况下可以考虑使用卢卡斯定理。 卢卡斯定理写出来是$Lucas(n,m)=Lucas(n/K,m/K) L 阅读全文
posted @ 2018-09-26 09:44 小蒟蒻yyb 阅读(741) 评论(4) 推荐(1)
摘要:【UOJ 67】新年的毒瘤(Tarjan) 题面 "UOJ" 题解 一棵$n$个节点的树显然有$n 1$条边,在本题中意味着删去一个点之后还剩下$n 2$条边。那么找到所有度数为$m (n 2)$的点就好了。但是因为是一棵树,所以联通,所以割点不是答案。 cpp include include us 阅读全文
posted @ 2018-09-25 11:46 小蒟蒻yyb 阅读(442) 评论(0) 推荐(0)