摘要: XLV.[HNOI2009] 梦幻布丁 线段树合并是非常显然的,但是这里我们偏不用。这里我们使用的是启发式合并——虽然这仍然非常显然。 可以使用链表做到 \(O(n\log n)\) 但是我太懒了因此直接暴力用 set 做了,是 \(O(n\log^2n)\) 的不过一样也能过。 附:set 直接 阅读全文
posted @ 2021-04-02 23:17 Troverld 阅读(105) 评论(0) 推荐(0)
摘要: XLIV.CF607D Power Tree 考虑计算 \(x\) 子树中某个节点 \(y\) 对于 \(f(x)\) 的贡献,发现是 \(w_y\times\prod\limits_{z\in\text{path}(y,x)}deg_z\),其中 \(deg_z\) 是 \(z\) 节点的儿子数。 阅读全文
posted @ 2021-04-02 23:15 Troverld 阅读(76) 评论(0) 推荐(0)
摘要: XLIII.URAL1097. Square Country 2 考虑二分,二分后转成判定性问题,然后用扫描线+线段树处理即可。时间复杂度 \(O(n\log^2n)\)。 代码: #include<bits/stdc++.h> using namespace std; int n,m,q; str 阅读全文
posted @ 2021-04-02 23:13 Troverld 阅读(44) 评论(0) 推荐(0)
摘要: XLII.[NOI2019] 弹跳 一眼看上去,单点向矩阵连边、最短路,这不是数据结构优化建图是什么? 想了想二维线段树优化建图,发现可以。 于是就写了,内层线段树写的还是可以压缩空间的线段树合并。 然后MLE了。 \(88\) 分代码: #include<bits/stdc++.h> using 阅读全文
posted @ 2021-04-02 23:11 Troverld 阅读(71) 评论(0) 推荐(0)
摘要: XLI.[NOI2017] 蚯蚓排队 算算数据范围,可以哈希,只需要将所有长度在 \(50\) 以内的串扔进哈希表,然后询问时找到对应的串的出现次数即可。 这里的哈希表必须用双哈希,其中第一维开在数组范围内,然后第二维作为链表挂在后面,因此范围可以无限大。不过因为要在 int 内处理,因此我两个模数 阅读全文
posted @ 2021-04-02 23:09 Troverld 阅读(117) 评论(0) 推荐(0)
摘要: XL.[NOI2017] 整数 首先可以想到一种用线段树维护每一位的方法:一个数 \(a\times2^b\) 拆成 \(\log a\) 个位置上 \(+1\),执行单点 \(+1\) 的时候如果出现进位就找到右方第一个非 \(1\) 的位置,然后单点加,区间赋 \(0\);执行减法的时候,就是找 阅读全文
posted @ 2021-04-02 23:07 Troverld 阅读(117) 评论(0) 推荐(0)
摘要: XXXIX.[NOI2017] 蔬菜 第一眼这个奇奇怪怪的限制,想到网络流。 为了处理这个“每天坏 \(c_i\)”个的限制,我想到的方法是,第一天的 \(c_i\) 个仅能在第一天销售,就只往代表第一天的点连边;第二天的 \(c_i\) 个可以在第一天和第二天销售,故往代表第一天和第二天的点连边; 阅读全文
posted @ 2021-04-02 23:03 Troverld 阅读(49) 评论(0) 推荐(0)
摘要: XXXVIII.[NOI2016] 网格 首先,答案一定 \(\leq2\),因为四个角的跳蚤被围住只需要两个蛐蛐,而如果蛐蛐占住了一个角又会产生新的角。 \(-1\) 的情形比较容易,要么空隙少于 \(2\) 个,要么仅剩的两个空隙在一起。两种情况下 \(n\times m\) 都与 \(c\) 阅读全文
posted @ 2021-04-02 23:02 Troverld 阅读(283) 评论(0) 推荐(0)
摘要: XXXVII.[十二省联考2019]春节十二响 考虑一个simple的情形:假如一个点有两条链作为儿子,应该怎么样才好? 明显,同一条链上的点不能在一起,于是链上的一个点只能与另一条链上的点匹配。明显匹配应该从大往小配(两个大的配了,这样最终便少了一个较大的)。于是我们用两个堆记录两条链,每次匹配堆 阅读全文
posted @ 2021-04-02 23:00 Troverld 阅读(80) 评论(0) 推荐(0)
摘要: XXXVI.[十二省联考2019]异或粽子 好像对可持久化结构有了新的认识( 首先,我们考虑,区间异或和,可以直接被转换为前缀异或和的异或和,即 \(s_r\operatorname{xor}s_{l-1}\)。于是我们考虑对于每个 \(s_r\) 找到与其异或起来最大的 \(s_{l-1}\)。 阅读全文
posted @ 2021-04-02 22:58 Troverld 阅读(62) 评论(0) 推荐(0)
摘要: XXXV.CF36E Two Paths 为什么这题会被归到数据结构博客里呢?因为我的代码使用了大剂量的 STL。 我吹爆 list 有没有!再也不手写链表了(并不),但是在欧拉路问题上真的贼好用! 首先,覆盖所有边恰一次,妥妥的欧拉路模型。 然后就先考虑如何判无解了。怎样无解呢? 有少于 \(2\ 阅读全文
posted @ 2021-04-02 22:57 Troverld 阅读(60) 评论(0) 推荐(0)
摘要: XXXIV.[九省联考2018]IIIDX 首先,一个非常naive的想法是,建出通关的树出来,然后dfs它,在访问到一个节点时,将现有最小的值赋给它,然后从大到小遍历每个子节点。 这个算法会被 \(d\) 相同的情形叉掉,因为它可以构造出这样一组数据:若某个节点的子树为 \(1\),且它的兄长(指 阅读全文
posted @ 2021-04-02 17:11 Troverld 阅读(179) 评论(0) 推荐(0)
摘要: XXXIII.[APIO2019]路灯 实际上本来是在刷CDQ分治的题来着的,但是CDQ分治是众所周知地抽象,所以在碰到三维数点问题时,除非卡空间,否则一律请选择树套树…… 我们可以用 set 来维护连通性。显然,若 \([l,r]\) 这一段的路灯全亮,则所有 \(a,b\in[l,r+1]\) 阅读全文
posted @ 2021-04-02 17:09 Troverld 阅读(113) 评论(0) 推荐(0)
摘要: XXXII.CF1491H Yuezheng Ling and Dynamic Tree 首先,相信大家都做过[HNOI2010]弹飞绵羊这道经典原题,而这题显然是那题的增强版。 众所周知,该原题有两种常见解法:LCT或分块。凭直觉发现LCT不可能处理这种区间修改问题,于是我们考虑分块。 分块的话, 阅读全文
posted @ 2021-04-02 17:08 Troverld 阅读(96) 评论(0) 推荐(0)
摘要: XXXI.CF626G Raffles 首先,我们列出“往一个奖池内多投一张彩票”,在奖项为 \(c\)、初始有 \(a\) 张、当前已经又投了 \(r\) 张时的额外收益: \(c\times\Big(\dfrac{r+1}{a+r+1}-\dfrac{r}{a+r}\Big)\) 稍微化简一下就 阅读全文
posted @ 2021-04-02 17:06 Troverld 阅读(74) 评论(0) 推荐(0)
摘要: XXX.CF505E Mr. Kitayuta vs. Bamboos “最大值最小”,条件反射套个二分上去。 于是现在问题转变成判定型问题。 正着搞不好处理 \(\max(h_i-p,0)\) 这种套了 \(\max\) 的限制,干脆正难则反,考虑倒着处理。 于是问题转变为 第 \(i\) 天开头 阅读全文
posted @ 2021-04-02 17:03 Troverld 阅读(64) 评论(0) 推荐(0)
摘要: XXIX.CF576E Painting Edges 首先,这个trick很常见,应该默认就能想到线段树分治的做法。但是,同样可以实现该trick的LCT维护关于删除时间的最大生成树的做法,因为我们并不知道删除时间是什么,所以不太好写(但是是能写的)。故我们只考虑线段树分治做法。 线段树分治,只需要 阅读全文
posted @ 2021-04-02 17:01 Troverld 阅读(91) 评论(0) 推荐(0)
摘要: XXVIII.[UOJ#576][ULR#1]服务器调度 非常可怕的大数据结构题,原版代码整整码了9K,就算稍微合并合并也剩下7K…… 首先,我们考虑对每种颜色,建出一棵虚树。考虑求出虚树的一条直径。则有个结论是原树上到任意一点最远的点肯定是此直径的端点之一。 例如,我们考虑下方的这棵树: O / 阅读全文
posted @ 2021-04-02 16:59 Troverld 阅读(200) 评论(0) 推荐(0)
摘要: XXVII.CF573E Bear and Bowling 考虑暴力的DP。设 \(f_{i,j}\) 表示前 \(i\) 个元素中选择长度为 \(j\) 的子序列所能得到的最大收益。 考虑由 \(f_i\) 转移到 \(f_{i+1}\)。明显,一共有两种转移方式:\(f_{i,j}\righta 阅读全文
posted @ 2021-04-02 16:57 Troverld 阅读(81) 评论(0) 推荐(0)
摘要: XXVI.CF1458C Latin Square 实际上此题使用的数据结构不很高级,甚至可以说很不高级——因为全程只用了数组。但是本题的思想绝对是非常高级的。 我们考虑上数据结构维护该操作。上下左右移动显然是没问题的;但是行中列中轮换应该咋办呢? 我们先考虑如果只有行上轮换应该怎么办。这玩意没什么 阅读全文
posted @ 2021-04-02 16:54 Troverld 阅读(69) 评论(0) 推荐(0)
摘要: XXV.CF702F T-Shirts 一句没有输出的调试语句忘删了,然后浪费了半小时debug\kk…… 首先观察到我们可以将所有物品按照quality为第一关键字递减排序,然后再关于price为第二关键字排序,这样所有人购买的东西就都必定是按照其一个子序列的顺序购买的。 于是把询问离线下来,然后 阅读全文
posted @ 2021-04-02 16:51 Troverld 阅读(43) 评论(0) 推荐(0)
摘要: XXIV.[Code+#1]Yazid 的新生舞会 关于众数,我们通常是对于每个数求出它作为众数的区间数。 考虑某个数 \(x\)。我们可以发现,如果令 \(a_i=x\) 的所有位置有 \(b_i=1\),其余位置有 \(b_i=-1\),则如果某个区间 \([l,r]\) 关于 \(b\) 的区 阅读全文
posted @ 2021-04-02 16:49 Troverld 阅读(67) 评论(0) 推荐(0)
摘要: XXIII.[JOI 2020 Final] 火事 题解 阅读全文
posted @ 2021-04-02 16:48 Troverld 阅读(98) 评论(0) 推荐(0)
摘要: XXII.CF477E Dreamoon and Notepad 题解 阅读全文
posted @ 2021-04-02 16:45 Troverld 阅读(55) 评论(0) 推荐(0)
摘要: XXI.[APIO2015]八邻旁之桥 首先先忽略所有在同侧的人,考虑异侧的人。 则明显,如果我们只在$p$位置修一座桥,则一个从某侧的$x$到另一侧的$y$的人,其一共要走的距离就是 \(|p-x|+|p-y|\) (忽略了桥长,因为桥长可以被统一计算) 于是我们发现,此时$x$和$y$是独立的。 阅读全文
posted @ 2021-04-02 16:43 Troverld 阅读(61) 评论(0) 推荐(0)
摘要: XX.[APIO2018] New Home 新家 题解 阅读全文
posted @ 2021-04-02 16:41 Troverld 阅读(27) 评论(0) 推荐(0)
摘要: XIX.「JOI 2013 Final」バブルソート 冒泡排序 首先,有一个常识性结论,就是冒泡排序的次数等于逆序对数。所以本题等价于交换两个数使得减少的逆序对数最多。 于是我们翻出VIII.CF785E Anton and Permutation中给出的结论——当$i<j$且$a_i>a_j$时, 阅读全文
posted @ 2021-04-02 16:39 Troverld 阅读(155) 评论(0) 推荐(1)
摘要: XVIII.CF679E Bear and Bad Powers of 42 一个显然的想法是,观察到可能的值域(\(10^{14}\))内不会有很多(准确地说,一共$11$个)$42$的整数次幂。于是我们考虑每次暴力修改,则每个数最多被处理$11$次,复杂度显然是可以承受的。 于是我们现在问题就转 阅读全文
posted @ 2021-04-02 16:38 Troverld 阅读(101) 评论(0) 推荐(0)
摘要: XVII.CF1413F Roads and Ramen 首先,注意到本题等价于求路径上所有边权的异或和为$0$的路径长度的最大值。 然后,我们要猜/证明出一个结论,即任意一条极长合法路径,其必有一个端点是直径端点。 证明: 我们设有一条直径$(S,T)$。我们再设$col_i$表示从$i$节点到根 阅读全文
posted @ 2021-04-02 16:36 Troverld 阅读(66) 评论(0) 推荐(0)
摘要: XVI.CF360B Levko and Array 明显可以二分答案为$x$。二分之后,我们考虑DP验证。 我们设$f_i$表示$a_i$强制保留时,最多可以保留多少个数。则我们显然有转移方程 \(\Large f_i=\max\limits_{j\in[1,i),|a_i-a_j|\leq(i- 阅读全文
posted @ 2021-04-02 16:24 Troverld 阅读(70) 评论(0) 推荐(0)
摘要: XV.CF319E Ping-Pong 好题。 首先,离线下来离散化显然是不用说的。 然后观察这里“可以移动”的定义,发现明显可以类比图论中的连边。发现边只有有向边(两区间包含)和无向边(两区间相交)两种,又因为我们只管连通性,所以无向边可以直接使用并查集维护。而包含关系又具有可传递性,故我们最终会 阅读全文
posted @ 2021-04-02 16:22 Troverld 阅读(76) 评论(0) 推荐(0)
摘要: XIV.SP1557 GSS2 - Can you answer these queries II 我认为这是GSS题目中难度最大的一道,不接受反驳。 这题中出现多次的只给算一次,应该咋办呢? 我们回忆起这种情况的经典老题:[SDOI2009]HH的项链。正解是将询问离线后按照右端点递增排序,然后出 阅读全文
posted @ 2021-04-02 16:20 Troverld 阅读(75) 评论(0) 推荐(0)
摘要: XIII.CF226E Noble Knight's Path 这题分为在线和离线两种做法然而我只会在线 在线的思路很简单,即先树剖,然后建出主席树。主席树一维维护的是时间,每一棵主席树内部维护的是树剖剖出来的结果。 然后对于每一次询问: 首先先从两边跳链,找到LCA,并找出两点路径间没有被“亵渎” 阅读全文
posted @ 2021-04-02 16:18 Troverld 阅读(125) 评论(0) 推荐(0)
摘要: XII.初级版:[NOI2003]文本编辑器;进阶版:[AHOI2006]文本编辑器 两道题操作基本一致,唯一的区别就是进阶版多了一个翻转操作,因此干脆合在一起讲。 可以使用splay或fhq treap通过。个人认为fhq treap更加直观。 光标的位置,我们用一个值$tar$表示。 Move/ 阅读全文
posted @ 2021-04-02 16:15 Troverld 阅读(73) 评论(0) 推荐(0)
摘要: XI.CF85D Sum of Medians 这题做法有无数种,其中最暴力的一种就是用vector爆算用$5$棵fhq treap直接处理。比线段树要好想的多。 代码: #include<bits/stdc++.h> using namespace std; typedef long long l 阅读全文
posted @ 2021-04-02 16:14 Troverld 阅读(60) 评论(0) 推荐(0)
摘要: X.CF650D Zip-line 我们考虑在修改一个位置后,新的LIS可能有哪些。 就是原序列中的LIS。 设原序列LIS长度为$len$。 此时有两种可能: A.被修改的位置在LIS中不是不可替代的(换句话说,有至少一条LIS不经过此位置)。此时,长度就是$len$。 B.被修改的位置在LIS中 阅读全文
posted @ 2021-04-02 16:11 Troverld 阅读(121) 评论(0) 推荐(0)
摘要: IX.[TJOI2017]不勤劳的图书管理员 我要举报……出题人语文明显不太好…… 首先,这题就是上一题的带权版。 然后,这题带了权后和上一题就不太一样了。 当你交换位置$x,y$的书后,(默认$x<y$) 位置在$x$前或在$y$后的书不受影响; 位置在$x,y$之间,且$val_z\in(val 阅读全文
posted @ 2021-04-02 16:08 Troverld 阅读(65) 评论(0) 推荐(0)
摘要: VIII.CF785E Anton and Permutation 我们看一下交换以后,哪些逆序对会受到影响。 设交换了位置$(x,y)$,它们原本的值是$val_x,val_y$。不妨设$x<y$。 对于一个位置$i<x$,$x,y$在交换后仍然都排在它后面,不受影响; 对于一个位置$i>y$,$ 阅读全文
posted @ 2021-04-02 16:06 Troverld 阅读(67) 评论(0) 推荐(0)
摘要: VII.[ZJOI2013]K大数查询 这题常卡的我快哭了QaQ 首先,我们仍然考虑树套树。 下标树套权值树(即我们前几题的一贯做法) 我们发现,要在区间树上打上区间添加数的tag,并且用tag树的并集进行二分。 因此最终的结果就是,大区间被分割成$\log n$个小区间,但是每个小区间的$\log 阅读全文
posted @ 2021-04-02 16:03 Troverld 阅读(59) 评论(0) 推荐(0)
摘要: VI.[CQOI2011]动态逆序对 这题需要支持查询前缀大于某个值的数量、后缀小于某个值的数量以及在某个地方插入值。 换句话说,我们要支持在以下标为$x$轴,权值为$y$轴的二维平面上动态删点以及询问矩形和。 如果我们把删点的时间看做$z$轴的话,那就是典型的三维偏序。 直接树套树完成。 代码(常 阅读全文
posted @ 2021-04-02 16:02 Troverld 阅读(55) 评论(0) 推荐(0)
摘要: V.【模板】三维偏序(陌上花开) 树套树比CDQ分治可爱一万倍!!!数据结构什么的最可爱了!!! 那么树套树如何进行三维偏序呢? 首先,第一维直接排序掉。 第二位用树状数组处理。 第三维套上权值线段树。 具体地说,因为我们要支持任何地方的单点修改以及前缀查询,就不得不套上树状数组。 这样,树套树便能 阅读全文
posted @ 2021-04-02 16:00 Troverld 阅读(119) 评论(0) 推荐(0)
摘要: IV.【模板】二逼平衡树(树套树) 树状数组套权值线段树最好了……$n\log2n$的复杂度可比$n\log3n$的什么线段树套平衡树要强一百万倍!其实是我不会写 分析一下操作: 二分出来最大的$<k$的数后直接权值线段树上查询前缀和。 就是II.Dynamic Rankings。 直接修改。 权值 阅读全文
posted @ 2021-04-02 15:59 Troverld 阅读(107) 评论(0) 推荐(0)
摘要: III.CF1093E Intersection of Permutations 首先,我们如果令$c[i]$表示$b[i]$在数组$a$中出现的位置, 那么对于一次询问,答案就是$c$中下标在$[l_2,r_2]\(间的数字中,值位于\)[l_1,r_1]$间的数量。 思路1.树状数组套权值线段树 阅读全文
posted @ 2021-04-02 15:57 Troverld 阅读(61) 评论(0) 推荐(0)
摘要: II.Dynamic Rankings 树状数组套权值线段树。 正经不带修的方法就是主席树(即一堆权值线段树并一起)。现在带修了,那就把这些主席树拆开,拆成$n$棵权值线段树,然后用树状数组进行单点修改以及前缀求和,复杂度$O(n\log^2n)$。 代码: #include<bits/stdc++ 阅读全文
posted @ 2021-04-02 15:56 Troverld 阅读(48) 评论(0) 推荐(0)
摘要: I.CF19D Points 树套树第一题。 思路1.线段树套线段树 因为内外的操作类似,很容易就能想到使用线段树套线段树,然后在线段树上二分来找到答案。 复杂度是$O(n\log^2 n)$,常数极大,因此被卡了。 代码: #include<bits/stdc++.h> using namespa 阅读全文
posted @ 2021-04-02 15:54 Troverld 阅读(100) 评论(0) 推荐(0)
摘要: XVIII.[AGC049A]Erasing Vertices 非常原教旨的概率题。假如想到这个point就应该非常easy罢。 我们考虑删掉一个节点的概率。则答案即为所有节点的概率之和。 对于某个节点来说,删去任何不能到达它的节点,对它都没有任何影响;而任意时刻,假如它未被删去,则所有能到达它的节 阅读全文
posted @ 2021-04-02 15:52 Troverld 阅读(93) 评论(0) 推荐(0)
摘要: XVII.[SDOI2017]龙与地下城 本题在模意义下和实数意义下,小范围和大范围下各有几种做法。 我们此处定义有$n$个骰子,每个骰子有$m$面。 小数据范围 明显发现它就是$f(x)=\frac{\sum\limits_xi}$的$n$次方。 于是直接倍增计算快速幂即可。时间复杂度$O(nm\ 阅读全文
posted @ 2021-04-02 15:51 Troverld 阅读(106) 评论(0) 推荐(0)
摘要: XVI.[BJOI2018]治疗之雨 一眼能看出这是道高斯消元题。 我们设$f_i$表示当前英雄血量为$i$时期望多少次死掉。 则我们有 \(f_i=\dfrac{1}{m+1}\times\Big(\sum\limits_{j=0}^iq_jf_{i+1-j}\Big)+\dfrac{m}{m+1 阅读全文
posted @ 2021-04-02 15:49 Troverld 阅读(65) 评论(0) 推荐(0)
摘要: XV.小 Y 和恐怖的奴隶主 题解 阅读全文
posted @ 2021-04-02 15:47 Troverld 阅读(124) 评论(0) 推荐(0)
摘要: XIV.[JXOI2018]排序问题 本题好像又不算期望罢…… 根据一些简单的推理,我们发现最终答案就是 \(\dfrac{(n+m)!}{\prod\limits_{i}cnt_i!}\) 其中$cnt_i$表示有多少个数是$i$。(这很简单,因为只有每个位置一一对应才能排序成功;但是值相同的数之 阅读全文
posted @ 2021-04-02 15:45 Troverld 阅读(52) 评论(0) 推荐(0)
摘要: XIII.[JXOI2018]游戏 这题好像根本不算概率期望罢…… 我们考虑$[l,r]$中,如果删去了区间中所有不是区间中其他任何数的倍数的数,则整个区间内所有的数都会被删去;反之,假如剩下了某些不是区间中其他任何数的倍数的数,则此区间一定不会被全部删完。 于是我们考虑求出区间中上述数的个数。考虑 阅读全文
posted @ 2021-04-02 15:43 Troverld 阅读(47) 评论(0) 推荐(0)
摘要: XII.[NOI2005]聪聪与可可 这题一个naive的思路是设$p_{i,j}$表示$i$时刻老鼠在位置$j$的概率,然后求出$f_i$表示猫$i$时刻前抓到老鼠的概率(因为如果$i$时刻猫可以抓到老鼠,则$i+1$时刻猫一定仍可以抓到老鼠;而$i$时刻猫能抓到老鼠的位置只有可能距猫的起点$\l 阅读全文
posted @ 2021-04-02 15:41 Troverld 阅读(77) 评论(0) 推荐(0)
摘要: XI.[HNOI2011]XOR和路径 同上题一样,本题采用倒序DP的方式。 我们考虑按位处理。设当前处理到第$p$位,再设$f_i$表示从位置$i$出发,到达终点时的期望结果。 则对于一条边$(x,y,z)$,如果$z$在第$p$位上是$1$,则有$f_x\leftarrow 1-f_y$;否则, 阅读全文
posted @ 2021-04-02 15:39 Troverld 阅读(60) 评论(0) 推荐(0)
摘要: X.[SDOI2012]走迷宫 这题本来是一个SCC+高斯消元的模板题来着的……但关键是DP状态的设计。 首先先判一下无解。显然,如果从起点出发能够走到一个走不到终点的点,则为无解。这很好想——只要答案有为无穷大的可能,无论概率多小,最终答案都会为无穷大。 然后就是DP设计了。我们无论设什么从起点出 阅读全文
posted @ 2021-04-02 15:37 Troverld 阅读(74) 评论(0) 推荐(0)
摘要: IX.[TJOI2015]概率论 O E I S 大 法 好 我们设$f(x)$表示$x$个节点的二叉树的叶子节点个数之和,$g(x)$表示$x$个节点的二叉树总数。则答案就是$\dfrac{f(n)}{g(n)}$。 显然$g$就是卡特兰数;$f$通过$O(n^4)$暴力DP可以打出表来,发现是 阅读全文
posted @ 2021-04-02 15:35 Troverld 阅读(90) 评论(0) 推荐(0)
摘要: VIII.随机数生成器 这题能自己做出来(虽然想了整整3天),我已经满足了。 我们设$p(x)$表示最大值刚好为$x$的概率。则答案为$\sum\limits_^mp(i)i$。 有了上一题的经验,我们很容易想到刚好为$x$的概率不好求,必须做一个前缀和/后缀和才好求。那么到底是用前缀和还是后缀和呢 阅读全文
posted @ 2021-04-02 15:33 Troverld 阅读(195) 评论(0) 推荐(0)
摘要: VII.[ZJOI2015]地震后的幻想乡 本题有两种思路。 一种思路是从暴力入手并优化状态。 我们考虑边的一组排列${p_1,\dots,p_m}$。它是将边按照边权从小到大排列的结果。则我们在这组排列上跑Kruskal,设在加入排名为$i$的边时跑出了一棵生成树,则这组排列的答案就是排名为$i$ 阅读全文
posted @ 2021-04-02 15:31 Troverld 阅读(92) 评论(0) 推荐(0)
摘要: VII.[NOI2012]迷失游乐园 题解戳这儿 阅读全文
posted @ 2021-04-02 15:25 Troverld 阅读(33) 评论(0) 推荐(0)
摘要: VI.[LnOI2019]加特林轮盘赌 我们考虑设$f[i][j]$表示$i$个人中,第$j$个人最终存活的概率。 我们先考虑$j>1$的情况。此时,有$p$的概率排在首位的人挂掉,局面变为$f[i-1][j-1]$;反之,有$1-p$的概率首位存活,这就相当于所有人向前进一格,局面变为$f[i][ 阅读全文
posted @ 2021-04-02 15:23 Troverld 阅读(66) 评论(0) 推荐(0)
摘要: V.[SHOI2014]概率充电器 这题实际上很简单,但是我却想歪了…… 我们我们可以设$f_i$表示$i$节点熄灭的概率。之所以不设为亮起的概率,是因为熄灭当且仅当周边节点没有一个连得到它,但是亮起却是周边至少有一个能连到它——用脚趾头想都知道哪个容易求。 设$p_i$表示$i$节点本身通电的概率 阅读全文
posted @ 2021-04-02 15:21 Troverld 阅读(59) 评论(0) 推荐(0)
摘要: V.[六省联考2017]分手是祝愿 首先,本题的基础是想到一种求解的方式: 当前第$n$盏灯只能被第$n$个开关控制,故我们只能操纵第$n$个开关将其搞灭。当其熄灭后,又相当于进入了$n-1$的游戏—— 因此,我们可以发现(或者瞎猜出来),任意局面都有唯一的最优方法,它操作在一组特定位置上。假如一次 阅读全文
posted @ 2021-04-02 15:19 Troverld 阅读(82) 评论(0) 推荐(0)
摘要: III.[HNOI2015]亚瑟王 观察题目,我们会发现两个性质: 一张卡片最多只能在一轮游戏中被成功使用。 一轮游戏最多只能成功使用一张卡片。 这样,我们纵向考虑每一张卡片,判断它在某局游戏中被成功使用的概率。 设我们当前有$t$轮游戏,且该卡片成功概率是$p$。则我们有$(1-p)^t$的概率在 阅读全文
posted @ 2021-04-02 15:17 Troverld 阅读(62) 评论(0) 推荐(0)
摘要: II.[HAOI2012]高速公路 本题已经在我的任务列表里挂了1年多了 我们将这里的“期望”转成“\(\dfrac{\text{区间中任意两点间距离之和}}{\text{区间中选取两点的方案数}}\)。然后,我们考虑使用线段树维护区间中任意两点间距离之和。 在每个节点上,我们维护如下东西: \(s 阅读全文
posted @ 2021-04-02 15:16 Troverld 阅读(54) 评论(0) 推荐(0)
摘要: I.[CTSC2018]假面 期望第一题,居然能独立做出来。 首先这个数据范围明显是暗示我们一个$O(Qm+Cn^2)$的算法可以过去。 我们设$pos_{i,j}$表示敌人$i$剩余血量为$j$的概率。 则当使用一个“锁定”技能后,就相当于对$pos_i$做了一个背包,单次复杂度$O(m_i)$。 阅读全文
posted @ 2021-04-02 15:14 Troverld 阅读(67) 评论(0) 推荐(0)
摘要: IX.[CERC2016]二分毯 Bipartite Blanket 二分图的重要定理:霍尔定理(Hall's Theroem)的应用。 霍尔定理:二分图 \(V=\Big((S,T),E\Big)\) 存在完美匹配,当且仅当 \(\forall s\subseteq S,|s|\leq |E_s| 阅读全文
posted @ 2021-04-02 15:13 Troverld 阅读(119) 评论(0) 推荐(0)
摘要: VIII.CF538H Summer Dichotomy 神题。 首先先考虑一个较弱的条件:如果没有$t$和$T$的限制,应该怎样分配$n_1$和$n_2$? 我们如果令$n_1=\max l_i,n_2=\min r_i$,这即为最优的分配方式。 为什么呢? 考虑对于一个$[l_i,r_i]$,什 阅读全文
posted @ 2021-04-02 15:11 Troverld 阅读(60) 评论(0) 推荐(0)
摘要: VII.[JSOI2009]游戏 这个游♂戏好恶心…… 首先,奇偶建图(黑白染色)是肥肠明显的,都是老套路了。 然后呢? 然后就不知道了呀!我没学过博弈论呀! 我们发现,如果我们在黑白染色出的二分图里面跑一个最大匹配,那么,从任何一个非匹配点出发,因为不会存在匹配边、非匹配边交错的路径,则先手一定会 阅读全文
posted @ 2021-04-02 15:10 Troverld 阅读(71) 评论(0) 推荐(0)
摘要: VI.CF1198E Rectangle Painting 2 这题要点是想到一个贪心:染色的时候一定是一次把一行或一列全染完,费用为$1$。有了这个结论,就可以进行匹配了。 首先,我们将矩形改写成左闭右开的形式,并进行离散化。然后,同上一题一样,只不过这道题是单次匹配的费用可能不为$1$(因为进行 阅读全文
posted @ 2021-04-02 15:08 Troverld 阅读(59) 评论(0) 推荐(0)
摘要: V.[HEOI2016/TJOI2016]游戏 这题一开始想的是最小割,但是写着写着发现写不出来。看了标签,发现里面没有最小割,但是有连通块和二分图。然后就想到了一种以前听说过的方法:连通块建图。 首先,对于任何一个关于$'x'\(和\)''\(连通的行连通块,这里面所有的\)''\(中都只能选择一 阅读全文
posted @ 2021-04-02 15:06 Troverld 阅读(49) 评论(0) 推荐(0)
摘要: IV.[JSOI2016]反质数序列 神题……想了一下午才想出来…… 同前几题一样,我们可以提出所有和为质数的对,然后跑二分图最大独立集。 先证明一下它为什么是二分图:我们可以令所有奇数为左部,所有偶数为右部。则所有同部间的对的和都是偶数(奇+奇=偶,偶+偶=偶)。则它是一个二分图。 等等,我们好像 阅读全文
posted @ 2021-04-02 15:04 Troverld 阅读(90) 评论(0) 推荐(0)
摘要: III.[SDOI2016]数字配对 这题是[LightOJ1356]Prime Independence 的加强版Orz... 思想还是一致的,可以建出二分图来,只是二分图单重匹配变成了多重匹配。 然后呢?这个“价值$\geq0$”的约束怎么办? 题解的办法太神仙了,蒟蒻表示看不懂Orz... 于 阅读全文
posted @ 2021-04-02 15:03 Troverld 阅读(71) 评论(0) 推荐(0)
摘要: II.[SCOI2015]小凸玩矩阵 二分图做的还是太少了orz…… 一看到“第$k$大数的最小值”这种东西就应该条件反射二分。 如果套上二分的话,问题就转变为“能否选出不大于$x$的$n-k+1$个数”。 因为一行一列只能选一个数,我们就可以联想到这是把一行和一列给它匹配起来。 然后我们就可以写出 阅读全文
posted @ 2021-04-02 15:01 Troverld 阅读(92) 评论(0) 推荐(0)
摘要: I.[LightOJ1356]Prime Independence 话说我把这么毒瘤的题放到二分图第一题是不是有些不好QaQ 翻译:给你$n$个不同的正整数$num_1...num_n$,要你从中选择最多的数,使得这些数里面没有一个是另一个的质数倍。输出你选择的数的个数。 首先,我们必须明确一点,就 阅读全文
posted @ 2021-04-02 14:59 Troverld 阅读(59) 评论(0) 推荐(0)
摘要: XXXVI.[UOJ#498]新年的追逐战 考虑最simple的场景,即我们要计算的是两张图的乘积 \(G=G_1\times G_2\)。显然,\(G\) 中的两个点 \((u_1,u_2)\) 与 \((v_1,v_2)\) 联通,当且仅当存在两条长度相等的可以是非简单的路径,满足第一条在 \( 阅读全文
posted @ 2021-04-02 14:57 Troverld 阅读(108) 评论(0) 推荐(1)
摘要: XXXV.[WC2019]数树 首先将问题从”存在路径同时属于两个树“,先转换成被两个树上同时存在的边连成的连通块中的所有边须有相同颜色。进一步地,因为两棵树的并必然是森林,而森林的连通块数即为点数减边数,因此一对树 \(T_1,T_2\) 的贡献便是 \(f(T_1,T_2)=y^{n-|T_1\ 阅读全文
posted @ 2021-04-02 14:56 Troverld 阅读(236) 评论(0) 推荐(0)
摘要: XXXIV.Biggest Set Ever 可能看不到题,简洁给一下题意: 求 \(\prod\limits_{i=0}^{T-1}(1+x^i)\) 中所有次数 \(\equiv m\pmod{n}\) 的项的系数之和。 数据范围:\(0\leq m<n\leq10000,1\leq T<10^ 阅读全文
posted @ 2021-04-02 14:54 Troverld 阅读(72) 评论(0) 推荐(0)
摘要: XXXIII.Jetpack[CSACADEMY] 我们考虑先通过一些科技求出“一段长度为 \(2i\) 且相邻两位置差的绝对值为 \(1\) 且首尾都是 \(0\) 的序列的数量”,记其为 \(f_i\)。 大约的确可以列出奇奇怪怪的式子表示 \(f_i\) 然后使用奇奇怪怪的可以优化求值的过程, 阅读全文
posted @ 2021-04-02 14:53 Troverld 阅读(128) 评论(0) 推荐(0)