首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Solution -「UOJ #87」mx 的仙人掌
】的更多相关文章
Solution -「UOJ #87」mx 的仙人掌
\(\mathcal{Description}\) Link. 给出含 \(n\) 个结点 \(m\) 条边的仙人掌图.\(q\) 次询问,每次询问给出一个点集 \(S\),求 \(S\) 内两两结点最短距离的最大值. \(n,\sum|S|\le3\times10^5\). \(\mathcal{Solution}\) 圆方树 + 虚树 = 虚圆方树! 首先,考虑对于整个仙人掌怎么求答案:建出圆方树,DP 记录子树最深结点深度,在方点处单调队列合并圆儿子的两条链贡献答案即可…
Solution -「UOJ #46」玄学
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\) 和 \(q\) 次操作,操作内容如下: 给出 \(l,r,k,b\),声明一个修改方案,表示 \(\forall i\in[l,r],~a_i\leftarrow (ka_i+b)\bmod m\). 给出 \(l,r,x\),求将第 \(l\) 到第 \(r\) 个修改方案作用于序列时,\(a_x\) 的值. 强制在线,\(n\le10^5\),\(q\le6\times10^5\).…
Solution -「UOJ #450」复读机
\(\mathcal{Description}\) Link. 求从 \(m\) 种颜色,每种颜色无限多的小球里选 \(n\) 个构成排列,使得每种颜色出现次数为 \(d\) 的倍数的排列方案数,对 \(19491001\) 取模. \(n\le10^9\), \(m\le10^3\),\(d=3\): \(m\le5\times10^5\),\(d\le2\). \(\mathcal{Solution}\) 分 \(d=1,2,3\) 求解. 当 \(d=1\),每个位置…
Solution -「ARC 104E」Random LIS
\(\mathcal{Description}\) Link. 给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率随机.求 \(\{b_n\}\) 中 LIS(最长上升子序列)的期望长度.对 \(10^9+7\) 取模. \(n\le6\),\(a_i\le10^9\). \(\mathcal{Solution}\) 欺负这个 \(n\) 小得可爱,直接 \(\mathcal O(n!)\) 枚举 \(…
Solution -「UNR #5」「UOJ #671」诡异操作
\(\mathcal{Desciprtion}\) Link. 给定序列 \(\{a_n\}\),支持 \(q\) 次操作: 给定 \(l,r,v\),\(\forall i\in[l,r],~a_i\leftarrow\lfloor\frac{a_i}{v}\rfloor\): 给定 \(l,r,v\),\(\forall i\in[l,r],~a_i\leftarrow a_i\otimes v\),其中 \(\otimes\) 表示二进制按位与: 给定 \(l,r\),求 \(\s…
Solution -「JOISC 2020」「UOJ #509」迷路的猫
\(\mathcal{Decription}\) Link. 这是一道通信题. 给定一个 \(n\) 个点 \(m\) 条边的连通无向图与两个限制 \(A,B\). 程序 Anthony 需要用 \(0\sim A-1\) 共 \(A\) 中颜色为无向图的每条边染色. 程序 Catherine 需要帮助一只猫行走:已知猫所在结点邻接每种颜色的边的数量,你需要告诉猫走哪种颜色的边(但不能让它走特定某条),并保证猫从起点 \(s\) 到 \(0\) 所走的距离不超过两点最短距离…
Solution -「UR #21」「UOJ #632」挑战最大团
\(\mathcal{Description}\) Link. 对于简单无向图 \(G=(V,E)\),定义它是"优美"的,当且仅当 \[\forall\{a,b,c,d\}\sube V,((a,b),(b,c),(c,d)\in E)\Rightarrow(a,c)\in E\lor(b,d)\in E\lor(a,d)\in E \] 给定一个"优美"的简单无向图 \(G\),对于所有 \(i\in[1,n]\),求有多少个 \(S\sube V\…
Solution -「UR #2」「UOJ #32」跳蚤公路
\(\mathcal{Description}\) Link. 给定一个 \(n\) 个点 \(m\) 条边的带权有向图,每条边还有属性 \(s\in\{-1,0,1\}\).对于每个 \(u\in[1,n]\),求有多少个 \(x\in\mathbb Z\),使得图上所有属性为 \(-1\) 的边权 \(-x\),为 \(0\) 的不变,为 \(1\) 的 \(+x\) 后,从 \(1\) 走到 \(u\) 的任意路径不经过负环.若存在无穷个 \(x\),输出 \(-1\). \(…
Solution -「CTS 2019」「洛谷 P5404」氪金手游
\(\mathcal{Description}\) Link. 有 \(n\) 张卡牌,第 \(i\) 张的权值 \(w_i\in\{1,2,3\}\),且取值为 \(k\) 的概率正比于 \(p_{i,k}\).依照此规则确定权值后,你不停抽卡,每次抽到第 \(i\) 张卡牌的概率正比于 \(w_i\),直到所有卡都被抽过至少一次. 此后,记 \(t_i\) 表示第 \(i\) 张牌第一次被抽到的时间.给定 \(n-1\) 条形如 \(\lang u,v\rang\) 的限制,表示…
Solution -「BZOJ 3812」主旋律
\(\mathcal{Description}\) Link. 给定含 \(n\) 个点 \(m\) 条边的简单有向图 \(G=(V,E)\),求 \(H=(V,E'\subseteq E)\) 的数量,使得 \(H\) 是强连通图.答案模 \((10^9+7)\). \(n\le15\). \(\mathcal{Solution}\) 仙气十足的状压容斥. 令 \(f(S)\) 表示仅考虑点集 \(S\) 的导出子图时,使得 \(S\) 强连通的选边方案数,那么 \(f(V…
Solution -「CF 1342E」Placing Rooks
\(\mathcal{Description}\) Link. 在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\) 对车可以互相攻击. 的摆放方案数,对 \(998244353\) 取模. \(n\le2\times10^5\). \(\mathcal{Solution}\) 这道<蓝题>嗷,看来兔是个傻子. 从第一个条件入手,所有格子可被攻击,那就有「每行都有车」或「每列都有车」成立.不妨…
Solution -「基环树」做题记录
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画出来是一种向外发散的有趣图案. 体现在[题目条件]上就是一个 \(n\) 个点 \(n\) 条边的连通图或保证每一个点的入度 / 出度为 \(1\) (有向图:前者称为外向树,后者称为内向树). 常常会把一些在树上做的 dp 放在基环树上以提高题目难度. 惯用思路是先把以环上的点为根的子树内的信息跑…
Solution -「WC 2022」秃子酋长
\(\mathscr{Description}\) Link. (It's empty temporarily.) 给定排列 \(\{a_n\}\),\(q\) 次询问,每次给出 \([l,r]\),求升序枚举 \(a_{l..r}\) 时下标的移动距离. \(n,q\le5\times10^5\). \(\mathscr{Solution}\) 我写了个不加莫队,它慢死了. 我写了个 Ynoi 风格的纯纯分块预处理,它慢死了. 我写了个 polylog 的正解,它还是慢…
Solution -「CEOI 2017」「洛谷 P4654」Mousetrap
\(\mathscr{Description}\) Link. 在一个含 \(n\) 个结点的树形迷宫中,迷宫管理者菈米莉丝和一只老鼠博弈.老鼠初始时在结点 \(y\),有且仅有结点 \(x\) 布置有陷阱.一条边有切断,脏和干净三种状态,初始时所有边是干净的,每一回合中: 管理者先行动:选择一条脏或干净的边,将其切断:选择一条脏的边,将其清理干净:或者不进行任何操作,此时管理者所用的操作次数不变. 老鼠后行动:设当前老鼠在结点 \(u\),则选择一条干净的边 \((u,v)\),走到…
Solution -「LOJ #6029」「雅礼集训 2017」市场
\(\mathcal{Description}\) Link. 维护序列 \(\lang a_n\rang\),支持 \(q\) 次如下操作: 区间加法: 区间下取整除法: 区间求最小值: 区间求和. \(n,q\le10^5\),值域大约是 \(V=2\times10^9\). \(\mathcal{Solution}\) 可以推测是势能线段树.对于线段树上的区间 \([l,r]\),想要将它 \(\div d\),维护 \(u=\min_{i=l}^r\{a_i\}\) 以及 \…
Solution -「BZOJ 4316」小C的独立集
\(\mathcal{Description}\) Link. 求包含 \(n\) 个结点 \(m\) 条边的仙人掌的最大独立集. \(n\le5\times10^4\),\(m\le6\times10^4\). \(\mathcal{Solution}\) 建出圆方树,考虑树上 DP. 设状态 \(f(i,0/1)\) 表示该点不选择/不限制选择与父亲相邻的圆点(对于圆点,即它本身)时,子树内的最大独立集.转移分圆点和方点讨论: 圆点:很显然,\(f(u,0)=\sum_{…
Solution -「JOISC 2021」「LOJ #3491」道路建设
\(\mathcal{Description}\) Link. 平面上有 \(n\) 个互不重合的点 \((x_{1..n},y_{1..n})\),求其两两曼哈顿距离的前 \(m\) 小值. \(n,m\le2.5\times10^5\). \(\mathcal{Solution}\) 会做,但不完全会做. 数前 \(k\) 小的一种技术是:将解大致分类,在每类中维护最优解,一起放入堆中迭代. 应用到本题,按 \((x,y)\) 的二维偏序排序后,对于每个点,尝试维护其…
Solution -「ARC 101D」「AT4353」Robots and Exits
\(\mathcal{Description}\) Link. 有 \(n\) 个小球,坐标为 \(x_{1..n}\):还有 \(m\) 个洞,坐标为 \(y_{1..m}\),保证上述坐标两两不同.每次操作可以将所有小球向左或向右平移一个单位,若有小球的坐标与洞重合则掉进洞内.求所有小球都进洞时有多少种不同的状态.答案对 \((10^9+7)\) 取模. \(n,m\le10^5\). \(\mathcal{Solution}\) ARC 的题嘛--都这副德行.( 不考虑…
Solution -「CF 908G」New Year and Original Order
\(\mathcal{Description}\) Link. 对于 \(x\in\mathbb N^*\),令 \(s(x)\) 表示将 \(x\) 十进制下的各位数码排序后得到的十进制数的值.求 \(\sum_{i=1}^X s(i)\) 对 \((10^9+7)\) 取模的结果. \(X\le10^{700}\). \(\mathcal{Solution}\) 下记 \(m=10\)(进制),\(n=\lceil\log_mX\rceil\). \(\mathcal{Cas…
Solution -「AGC 010C」「AT 2304」Cleaning
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个点的无根树,点有点权,每次选择两个不同的叶子,使它们间的简单路径的所有点权 \(-1\),问能否将所有点权变成 \(0\). \(n\le10^5\). \(\mathcal{Solution}\) 这不就是我那道题的削弱版么 www. 考虑叶子 \(u\),显然有 \(val_u\) 条路径经过 \(u\).DFS 回溯时考虑合并儿子们的路径.假设儿子们向上的路径共 \(s\) 条,单个…
Solution -「CF 510E」Fox And Dinner
\(\mathcal{Description}\) Link. 给定正整数集合 \(\{a_n\}\),求一种把这些数放置在任意多个圆环上的方案,使得每个环的大小大于 \(2\) 且环上相邻两数之和是素数. \(n\le200\),\(2\le a_i\le10^4\). \(\mathcal{Solution}\) 这题怎么也黑了呢 qwq-- 考虑到 \(2\le a_i\),有 \(4\le a_i+a_j\),所以素数必然是奇素数,而一个环必然是偶环.一个常见的套路是…
Solution -「CF 494C」Helping People
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\) 和 \(m\) 个操作,第 \(i\) 个操作有 \(p_i\) 的概率将 \([l_i,r_i]\) 内的元素 \(+1\).且保证任意两个区间要么不交,要么有包含关系.求所有操作完成后序列最大值的期望. \(n\le10^5\),\(m\le5000\). \(\mathcal{Solution}\) 首先应当知道,\(E(\max\{a_i\})\not=\max\{E(a_i…
Solution -「AGC 029E」「AT 4504」Wandering TKHS
\(\mathcal{Description}\) Link. 给一棵 \(n\) 个点的树,从某个点出发,遍历时必须走到已经走过的连通块所邻接的编号最小的结点.求从每个点出发,走到 \(1\) 号结点所需额外走的结点(即走到块的大小 \(-1\)). \(n\le2\times10^5\). \(\mathcal{Solution}\) 把 \(1\) 提为根,那么一个点到根最大的阻碍就是路径上编号最大的结点.记 \(mx_u\) 表示 \(1\) 到 \(u\) 的最大结点编…
Solution -「JOISC 2019」「LOJ #3036」指定城市
\(\mathcal{Description}\) Link. 给定一棵含 \(n\) 个结点的树,双向边权不相同.\(q\) 次询问,每次询问在树上标记 \(e\) 个点,标记的价值为所有趋向于某个标记点的有向边权值之和,求价值的最大值. \(q\le n\le2\times10^5\). \(\mathcal{Solution}\) \(e=1\text{ or }2\) 的时候可以直接换根求解.需要强调的是,当确定一个被标记的根时,其余标记点的贡献为根到这个标记点的有向路径…
Solution -「HAOI 2018」「洛谷 P4491」染色
\(\mathcal{Description}\) Link. 用 \(m\) 种颜色为长为 \(n\) 的序列染色,每个位置一种颜色.对于一种染色方案,其价值为 \(w(\text{出现恰 }s\text{ 次的颜色种数})\)(\(w(0..m)\) 给定),求所有染色方案的价值和. \(n\le10^7\),\(m\le10^5\),答案对 \(p=1004535809=479\times2^{21}+1\) 取模. \(\mathcal{Solution}\) 记 \(l…
Solution -「CF 1132G」Greedy Subsequences
\(\mathcal{Description}\) Link. 定义 \(\{a\}\) 最长贪心严格上升子序列(LGIS) \(\{b\}\) 为满足以下两点的最长序列: \(\{b\}\) 是 \(\{a\}\) 的子序列. \(\{b\}\) 中任意相邻两项对应 \(\{a\}\) 中 \(a_i,a_j\),则 \(a_i<a_j\) 且不存在 \(i<k<j\),s.t. \(a_i<a_k\). 求给定序列 \(\{a_n\}\) 的所有长度为 \(k\)…
Solution -「ARC 063D」「AT 2149」Snuke's Coloring 2
\(\mathcal{Decription}\) Link. 平面上有一个左下角坐标 \((0,0)\) 右上角坐标 \((W,H)\) 的矩形,起初长方形内部被涂白. 现在给定 \(n\) 个点,你每次在以下 \(4\) 种操作中选择一种: 将矩形内 \(x<x_i\) 的区域涂黑: 将矩形内 \(x>x_i\) 的区域涂黑: 将矩形内 \(y<y_i\) 的区域涂黑: 将矩形内 \(y>y_i\) 的区域涂黑. 最大化操作后白色矩阵周长. \(n\le3\tim…
Solution -「POJ 3710」Christmas Game
\(\mathcal{Decription}\) Link. 定义一棵圣诞树: 是仙人掌. 不存在两个同一环上的点,度数均 \(\ge 3\). 给出 \(n\) 棵互不相关的圣诞树,双人博弈,每轮切断一棵圣诞树的一条边,并且与该树根不向连的部分全部消失,不能操作者负.求先手是否有必胜策略. 多测,\(T,n\le 100\),\(m\le 500\). \(\mathcal{Solution}\) 没有什么不说人话的定理和结论,这里只应用 SG 函数和 Nim 游戏的基础知…
Solution -「简单 DP」zxy 讲课记实
魔法题位面级乱杀. 「JOISC 2020 Day4」治疗计划 因为是不太聪明的 Joker,我就从头开始理思路了.中途也会说一些和 DP 算法本身有关的杂谈,给自己的冗长题解找借口. 首先,治疗方案不会重复使用.因为重复使用只会空加代价,而不会在特定时刻产生额外贡献.故而总决策方案应有 \(2^m\) 个,我们需要在这 \(2^m\) 个中找出最小可能花费. DFS 是最显然的算法,但显然不可做,不过它枚举状态的思路很好地把我们引向了 DP. 于是开始尝试设计 DP 状态. DP 状态定义中,…
Solution -「JSOI 2019」「洛谷 P5334」节日庆典
\(\mathscr{Description}\) Link. 给定字符串 \(S\),求 \(S\) 的每个前缀的最小表示法起始下标(若有多个,取最小的). \(|S|\le3\times10^6\). \(\mathscr{Solution}\) 注意到一个显然的事实,对于某个前缀 \(S[:i]\) 以及两个起始下标 \(p,q\),若已有 \(S[p:i]<S[q:i]\),那么在所有的 \(j>i\) 中,都有 \(S[p:j]<S[q:j]\).换言之,最终…