首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Solution -「CodeChef JUMP」Jump Mission
】的更多相关文章
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 -「CodeChef JUMP」Jump Mission
\(\mathcal{Description}\) Link. 有 \(n\) 个编号 \(1\sim n\) 的格子排成一排,并有三个权值序列 \(\{a_n\},\{h_n\},\{p_n\}\),其中 \(\{p_n\}\) 是一个排列.从 \(i\) 跳到 \(j\),必须满足 \(i<j\land p_i<p_j\),代价为 \((h_i-h_j)^2+a_j\),求从 \(1\) 跳到 \(n\) 的最小代价. \(n,h_i\le6\times10^5\). \(\m…
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 -「简单 DP」zxy 讲课记实
魔法题位面级乱杀. 「JOISC 2020 Day4」治疗计划 因为是不太聪明的 Joker,我就从头开始理思路了.中途也会说一些和 DP 算法本身有关的杂谈,给自己的冗长题解找借口. 首先,治疗方案不会重复使用.因为重复使用只会空加代价,而不会在特定时刻产生额外贡献.故而总决策方案应有 \(2^m\) 个,我们需要在这 \(2^m\) 个中找出最小可能花费. DFS 是最显然的算法,但显然不可做,不过它枚举状态的思路很好地把我们引向了 DP. 于是开始尝试设计 DP 状态. DP 状态定义中,…
Solution -「基环树」做题记录
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画出来是一种向外发散的有趣图案. 体现在[题目条件]上就是一个 \(n\) 个点 \(n\) 条边的连通图或保证每一个点的入度 / 出度为 \(1\) (有向图:前者称为外向树,后者称为内向树). 常常会把一些在树上做的 dp 放在基环树上以提高题目难度. 惯用思路是先把以环上的点为根的子树内的信息跑…
「CodeChef - SKIRES」Ski Resort
题目链接 戳我 \(Description\) 给你一个\(n*m\)的网格,以及网格上的两个格子\(A,B\).每个格子有一个高度.每次操作可以选择一个格子(不能是\(A\)或\(B\))并将它的高度增加\(1\).你希望在\(A,B\)间不存在任何一条不上升路径.求最少操作次数. \(Solution\) 这道题很容易看出来是最小割啊. 我们想一想怎么建图. 最容易想到的是两两之间连边,跑最小割,但是这个很明显是不对的.因为一个点增加了一定的值,可能对别的链有影响,所以不能怎么建图. 再来想…
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 -「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]\).换言之,最终…