Solution -「ARC 110F」Esoswap】的更多相关文章

\(\mathcal{Description}\)   Link.   给定 \(0\sim n-1\) 的排列 \(p_{0..n-1}\),每次操作给出 \(i\),交换 \(p_i\) 和 \(p_{(i+p_i)\bmod n}\).构造一种使排列升序的操作序列.   \(n\le100\). \(\mathcal{Solution}\)   反正兔子就一个样例观察法,一个暴力伪解拍上去就 AC 了.(   先讲讲我的伪解,观察样例解释: First, announce \(i=6\).…
\(\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!)\) 枚举 \(…
\(\mathcal{Description}\)   Link.   有 \(n\) 个小球,坐标为 \(x_{1..n}\):还有 \(m\) 个洞,坐标为 \(y_{1..m}\),保证上述坐标两两不同.每次操作可以将所有小球向左或向右平移一个单位,若有小球的坐标与洞重合则掉进洞内.求所有小球都进洞时有多少种不同的状态.答案对 \((10^9+7)\) 取模.   \(n,m\le10^5\). \(\mathcal{Solution}\)   ARC 的题嘛--都这副德行.(   不考虑…
\(\mathcal{Description}\)   Link.   给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\le m\),求 \[\sum_{\{b_n\}}\prod_{i=1}^n\binom{b_i}{a_i}\bmod(10^9+7) \]   \(n,a_i\le2\times10^3\). \(\mathcal{Solution}\)   鉴于这是 ARC D,可以直观感受到是一个代码不长的组…
\(\mathcal{Description}\)   Link.   有 \(n\) 个人站成一个环,初始时第 \(i\) 个人手里有 \(a_i\) 个球.第 \(i\) 个人可以将自己手中任意数量的求给第 \(i+1\) 个人,第 \(n\) 个人则可以给第 \(1\) 个人.设所有人同时进行一次传球后,第 \(i\) 个人手里有 \(b_i\) 个球,并令 \(B\) 为所有可能的 \(\lang b_n\rang\) 构成的集合,求 \[ \sum_{\lang b_n \rang\i…
\(\mathcal{Description}\)   Link.   给定序列 \(\{a_n\}\),定义一次操作为: 选择 \(a_i<a_j\),以及一个 \(x\in\mathbb R_+\),使得 \(a_i+x\le a_j-x\): 令 \(a_i\leftarrow a_i+x,a_j\leftarrow a_j-x\),本次操作的得分为 \(x\).   定义序列的得分为进行任意次操作能得到的最大得分和,现给定 \(m\) 次形如 \(a_x\leftarrow y\) 的修…
\(\mathcal{Description}\)   Link.   给定 \(\{x_n\}\),令 \[f(k)=\left|\{(a,b,c)\mid a,b\in[0,c),c\in[1,k],\left(\forall i\in[1,n),(ax_i+b)\bmod c<(ax_{i+1}+b)\bmod c\right)\}\right| \] 求出 \[\lim_{k\rightarrow+\infty}\frac{f(k)}{k^3}\bmod 998244353. \]   …
\(\mathcal{Description}\)   Link.   给定含有 \(n\) 个结点的树,求非负整数对 \((x,y)\) 的数量,满足存在 \(\exist S\subseteq V,~|S|=x\land\sum_{u\in S}d_u=y\),其中 \(d_u\) 表示点 \(u\) 的度数.   \(n\le2\times10^5\). \(\mathcal{Solution}\)   方便期间,以下所有 \(d_u\) 表示 \(u\) 的度数 \(-1\).   出题…
\(\mathcal{Description}\)   Link.   把 \(n\) 种零食分给 \(m\) 个人,第 \(i\) 种零食有 \(a_i\) 个:第 \(i\) 个人得到同种零食数量不超过 \(b_i\),总数量不超过 \(c_i\),求最多分出的零食数量.   \(n,m\le2\times10^5\). \(\mathcal{Solution}\)   很容易看出这是网络流模型: 源点 \(S\) 连向每种零食 \(i\),容量 \(a_i\): 零食 \(i\) 连向人…
\(\mathcal{Description}\)   Link.   称一个正整数序列为"俳(pái)句",当且仅当序列中存在连续一段和为 \(x\),紧接着连续一段和为 \(y\),再紧接着连续一段和为 \(z\),其中 \(x,y,z\) 为给定正整数.计数长度为 \(n\),元素大小不超过 \(10\) 的俳句.   \(n\le40\),\(x+y+z\le17\). \(\mathcal{Solution}\)   通过俳句的特征(连续三段和的限制)来正向计数会重复:一个俳…
\(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个点的树,其中 \(2|n\),你需要把这些点两两配对,并把每对点间的路径染色.求使得所有边被染色的方案数,对 \(10^9+7\) 取模.   \(n\le5000\). \(\mathcal{Solution}\)   容斥,令 \(f(S)\) 表示钦定边集 \(S\) 全部为被覆盖的方案数.显然答案为: \[\sum_{S\subseteq E}(-1)^{|S|}f(S) \]   \(S\)…
\(\mathcal{Description}\)   Link.   给定长度为 \(n\),包含 A, B, C 三种字符的字符串 \(S\),定义一次操作为将其中相邻两个不相同的字符替换为字符集中不同于这两个字符的另一种字符.求任意次操作后得到的不同字符串个数,答案对 \(10^9+7\) 取模.   \(n\le10^6\). \(\mathcal{Solution}\)   我们希望探究此种替换操作的结合性,trick 为将字符集替换为数字集,将操作表达为数字间的运算.对于本题,令 A…
\(\mathcal{Description}\)   Link.   一个沙漏内共 \(Xg\) 沙,令初始时上半部分为 A,下半部分为 B.沙漏在 \(r_1,r_2,\cdots,r_n\) 时刻会被瞬间翻转.\(q\) 次询问,每次询问给出 \((t,a)\),求初始时 A 有 \(ag\) 沙,\(t\) 时刻时 A 内沙的质量.保证 \(r_{1..n},t_{1..q}\) 升序.   \(n,q\le10^5\). \(\mathcal{Solution}\)   显然,随着初始…
\(\mathcal{Decription}\)   Link.   平面上有一个左下角坐标 \((0,0)\) 右上角坐标 \((W,H)\) 的矩形,起初长方形内部被涂白. 现在给定 \(n\) 个点,你每次在以下 \(4\) 种操作中选择一种: 将矩形内 \(x<x_i\) 的区域涂黑: 将矩形内 \(x>x_i\) 的区域涂黑: 将矩形内 \(y<y_i\) 的区域涂黑: 将矩形内 \(y>y_i\) 的区域涂黑.   最大化操作后白色矩阵周长.   \(n\le3\tim…
\(\mathcal{Description}\)   Link.   给定 \(\{x_n\}\),对于满足 \(h_i\in[1,x_i]\) 的序列 \(\{h_n\}\),定义序列 \(\{p_n\}\) 满足: \[p_i=\begin{cases}-1,&(\not\exist j<i)(h_j>h_i)\\\max_{j<i}\{j|h_j>h_i\},&\text{otherwise}\end{cases} \]   求所有可能出现的本质不同的 \(…
\(\mathcal{Description}\)   Link.   读题时间≈想题时间,草.(   给定 \(N,K,M\),对于每个 \(x\in[1,N]\) 的整数 \(x\),统计多重集 \(\{s\}\) 的个数,使得集合元素的平均数为 \(x\),且满足对于任意 \(i\), \(s_i\in[1,N]\) 且 \(\sum_j[s_i=s_j]\le K\),即相同元素至多出现 \(K\) 次.答案对 \(M\) 取模.   \(N,K\le100\). \(\mathcal{…
\(\mathcal{Description}\)   Link.   数轴从 \(1\sim 2n\) 的整点上有 \(n\) 个闭区间.你只知道每个区间的部分信息(可能不知道左或右端点,或者都不知道),问是否存在满足已知信息的 \(n\) 个区间,满足: 每个整点是恰好一个区间的端点. 所有包含同一个整点的区间长度相等.   输入信息可能不合法.   \(n\le100\). \(\mathcal{Solution}\)   老细节题了.(   考虑数轴上连续的一段区间 \([l,r]\),…
「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadruple   Link.   枚举 \(i=c+d\),则 \(a+b=i+k\),乘法原理计数. 「ARC 107C」Shuffle Permutation   Link.   由于矩阵内无相等元素,所以行和列的顺序可以直接乘法原理.以对行的排列方案计数为例,并查集维护所有可以交换位置的行,则行的方案…
「ARC 139F」Many Xor Optimization Problems 对于一个长为 \(n\) 的序列 \(a\),我们记 \(f(a)\) 表示从 \(a\) 中选取若干数,可以得到的最大异或值. 现在给定 \(n,m\),你需要对于所有长为 \(n\),且 \(0\le a_i<2^m\) 的序列,计算 \(f(a)\) 的和. \(1\le n,m\le 250000\). PS:本题解的做法可以做到 \(n=10^9,m=10^7\). Solution 考虑给定序列 \(a…
\(\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\) 的限制,表示…
\(\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…
\(\mathcal{Description}\)   Link.   在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\) 对车可以互相攻击.   的摆放方案数,对 \(998244353\) 取模.   \(n\le2\times10^5\). \(\mathcal{Solution}\)   这道<蓝题>嗷,看来兔是个傻子.   从第一个条件入手,所有格子可被攻击,那就有「每行都有车」或「每列都有车」成立.不妨…
魔法题位面级乱杀. 「JOISC 2020 Day4」治疗计划 因为是不太聪明的 Joker,我就从头开始理思路了.中途也会说一些和 DP 算法本身有关的杂谈,给自己的冗长题解找借口. 首先,治疗方案不会重复使用.因为重复使用只会空加代价,而不会在特定时刻产生额外贡献.故而总决策方案应有 \(2^m\) 个,我们需要在这 \(2^m\) 个中找出最小可能花费. DFS 是最显然的算法,但显然不可做,不过它枚举状态的思路很好地把我们引向了 DP. 于是开始尝试设计 DP 状态. DP 状态定义中,…
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画出来是一种向外发散的有趣图案. 体现在[题目条件]上就是一个 \(n\) 个点 \(n\) 条边的连通图或保证每一个点的入度 / 出度为 \(1\) (有向图:前者称为外向树,后者称为内向树). 常常会把一些在树上做的 dp 放在基环树上以提高题目难度. 惯用思路是先把以环上的点为根的子树内的信息跑…
\(\mathscr{Description}\)   Link. (It's empty temporarily.)   给定排列 \(\{a_n\}\),\(q\) 次询问,每次给出 \([l,r]\),求升序枚举 \(a_{l..r}\) 时下标的移动距离.   \(n,q\le5\times10^5\). \(\mathscr{Solution}\)   我写了个不加莫队,它慢死了.   我写了个 Ynoi 风格的纯纯分块预处理,它慢死了.   我写了个 polylog 的正解,它还是慢…
\(\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]\).换言之,最终…
\(\mathscr{Description}\)   Link.   求 \(S\subseteq\{1,2,\dots,n\}\),使得 \(\prod_{i\in S}i\) 是完全平方数,并最大化 \(|S|\).   \(n\le10^6\). \(\mathscr{Solution}\)   爆搜打出 \(20\) 以内的表,发现 \(|S|\approx n\).先研究偶数 \(n=2k\): \[\begin{aligned} \prod_{i=1}^{2k} i! &= \le…
\(\mathscr{Description}\)   Link.   给定两棵含 \(n\) 个结点的树 \(T_1=(V_1,E_1),T_2=(V_2,E_2)\),求一个双射 \(\varphi:V_1\rightarrow V_2\),使得 \(\forall (u,v)\in V_1^2,~(u,v)\notin E_1\lor (\varphi(u),\varphi(v))\notin E_2\),或声明无解.   \(n\le10^4\). \(\mathscr{Solution…
\(\mathscr{Description}\)   Link.   在一个含 \(n\) 个结点的树形迷宫中,迷宫管理者菈米莉丝和一只老鼠博弈.老鼠初始时在结点 \(y\),有且仅有结点 \(x\) 布置有陷阱.一条边有切断,脏和干净三种状态,初始时所有边是干净的,每一回合中: 管理者先行动:选择一条脏或干净的边,将其切断:选择一条脏的边,将其清理干净:或者不进行任何操作,此时管理者所用的操作次数不变. 老鼠后行动:设当前老鼠在结点 \(u\),则选择一条干净的边 \((u,v)\),走到…
\(\mathcal{Description}\)   Link.   给定平面上 \(n\) 个点,求最小的能覆盖其中至少 \(m\) 个点的圆半径及一个可能的圆心.   \(n\le500\),坐标值 \(X\in[0,10^4]\). \(\mathcal{Solution}\)   不难想到二分答案 \(r\),以每个点为圆心,\(r\) 为半径作圆,若 \(r\) 合法则能找到一个被至少 \(m\) 个圆覆盖的点.   但是圆的交极难处理,结合数据范围,考虑通过一些枚举操作来简化问题-…