摘要:
一种不一样的做法 首先,因为是 \((1,1)\to (3,n)\) 的简单路径上的点权之和的最大值,所以显然只会在第 \(2\) 行进行“向左”的操作。 可以发现,每次向左一定会取到一个 \(3\) 行 \(x\) 列的子矩阵中的所有数,其中 \(x\) 是向左的次数。 如图,向左的次数是 \(6 阅读全文
摘要:
题解 设矩阵是 \(n\) 行 \(m\) 列的,且唯一的值为 \(0\) 的点在 \((x,y)\)。不妨设 \(x\le n-x+1,y\le m-y+1\),因为可以通过旋转和翻转矩阵将 \((x,y)\) 放到这个区域内。 于是,矩阵中离 \((x,y)\) 最远的点一定是 \((n,m)\ 阅读全文
摘要:
相信大家都知道密码是什么。 阅读全文
摘要:
题解 假如只有 \(1\) 操作,那么操作之间可交换,可以建出 DAG,统计出每种 \(1\) 操作的执行次数即可。 可以发现,执行完一个操作 \(K\),再进行一次 \(2\ x\) 操作,相当于执行了 \(x\) 次 \(K\) 操作。 于是先倒序拓扑出每个操作执行完会被乘多少,然后正序拓扑即可 阅读全文
摘要:
题解 可以发现,\(\gcd(a_1,a_2,\dots,a_{k+1})\mid \gcd(a_1,a_2,\dots,a_k)\),因此前缀中不同的 \(\gcd\) 值只有 \(\log\) 种。 考虑分块:每 \(B\) 个元素为一块,每块内维护区间异或和、区间内 \(\gcd\) 的转折点 阅读全文
摘要:
题解 其实就是构造一个 \(k\) 叉哈夫曼树,并在保证 \(\sum w_i\times dep_i\) 最小的情况下使得树的深度最小。 由于哈夫曼树自下而上构造时,可能出现最顶层不满 \(k\) 个的情况,所以如果 \((n-1)\bmod (k-1)\neq 0\),需要补 \(k-1-((n 阅读全文
摘要:
题解 设 \(f_{i,j}\) 为将前 \(j\) 个元素分成 \(i\) 段,其最小的代价。设 \(w(i,j)\) 为把 \([i,j]\) 之间的元素放到一段的代价,则 \(f_{i,j}=\min\limits_{1\le k\le j}\{f_{i-1,k-1}+w(k,j) \}\)。 阅读全文
摘要:
A 写个暴力找规律即可。 B \(80\) 分做法:数位 dp,设 \(f_{i,j}\) 为低 \(i\) 位,\(\bmod a=j\) 是否可行,并记录一下转移。 考虑建一张 \(a\) 个点 \(0\sim(a-1)\) 的图,对于每个合法的转移 \(x\to (10x+y)\bmod a\ 阅读全文
摘要:
题意 给定 \(n\),求方程 \(\dfrac{1}{x}+\dfrac{1}{y}=\dfrac{1}{n!}\) 的正整数解个数,\(1\le n\le 10^6\)。 题解 \(\begin{aligned} \dfrac{1}{y}&=\dfrac{1}{n!}-\dfrac{1}{x}= 阅读全文
摘要:
在我的洛谷博客中查看 题解 因为原树的所有非叶子节点都恰好有两个儿子,所以原树上 \(n\) 个叶子节点形成的虚树与原树同构。 考虑增量地构造虚树:假如前 \((i-1)\) 个叶子的虚树已经求出来了,那么怎么找到第 \(i\) 个叶子的位置呢? 首先我们可以通过一次询问,确定叶子节点 \(i\) 阅读全文