其他分享
首页 > 其他分享> > 记录「十一月做题记录」

记录「十一月做题记录」

作者:互联网

水题记录。


11.2

P5663 加工零件

题面

题解

发现若 \(s\) 到 \(t\) 一条路径长度为 \(d\) ,那么可以通过在一条边上反复折返使得存在一条长度为 \(d+2k,k\in \N\) 的从 \(s\) 到 \(t\) 的路径。分路径长度的奇偶求出最短路即可。


11.3

P2515 [HAOI2010]软件安装

题面

题解

发现是一个基环树森林,环上的点要么都选,要么都不选,于是可以把环缩成一个点。

缩完点后的图一定是一个森林,可以把所有树根连接到一个虚拟节点上形成一棵树。这样直接树形DP是 \(O(nm^2)\) 的。可以用DFS序优化到 \(O(nm)\) 。

在树上DFS,求出后序遍历的DFS序,在DFS序上DP。

设 \(\mathrm{dp}(i,j)\) 表示考虑到后序遍历的 \(i\) 号结点,背包容量为 \(j\) 时,所能取得的最大价值。设 \(\mathrm{size}_i\) 表示以 \(i\) 为根的子树的大小。

综上可得 \(\mathrm{dp}(i,j)=\max(\mathrm{dp}(i-1,j-w_i)+v_i,\;\mathrm{dp}(i-\mathrm{size}_i,j))\) 。

P5858 「SWTR-03」Golden Sword

题面

题解

令 \(\mathrm{dp}(i,j)\) 表示考虑到第 \(i\) 个原料,当前锅中有 \(j\) 个原料的最大耐久度之和。则有:

\[\mathrm{dp}(i,j)=\max_{j-1\leq k\leq \min(w,j+s-1)}\{\mathrm{dp}(i-1,k)\}+j\times a_i \]

单调队列优化即可。

P5020 货币系统

题面

题解

完全背包。

将面值从小到大排序,依次加入。若当前的面值能用之前的面值表示,那么这个面值就是无用的,可以舍去。维护一个背包即可。

P4878 [USACO05DEC]Layout G

题面

题解

差分约束。

判断有无解是基础操作,重点是后两个询问。

因为必须要满足三角形不等式,所以其实从 \(1\) 到 \(n\) 的路径长度其实是确定的。具体一点,若有多个点能够到达点 \(v\) ,为了满足三角形不等式,必须选择这些点中 \(dis_u+w(u,v)\) 最小的点走,发现这就是最短路。

从虚拟源点跑一遍最短路判断有无解,再从 \(1\) 号点跑最短路,得出的 \(dis_n\) 即为所求。

CF804B Minimum number of steps

题面

题解

手玩几组数据不难发现:\(a\) 的数量总是不变的。我们从左往右扫这个字符串,若遇到一个 \(b\) ,将它前面的 \(a\) 全部移到它后面去。因为扫到这个 \(b\) 时,前面所有的 \(a\) 已经通过前面的 \(b\) 移到了当前字符串的末尾,这样保证了新加入的 \(b\) 一定能够将它之前的 \(a\) 移到后面去。

通过手玩数据,不难发现另一个结论:若 \(b\) 前面有 \(c\) 个 \(a\) ,那么将这 \(c\) 个 \(a\) 全部移到后面去的操作次数为 \(\sum_{i=1}^c2^{i-1}\) 。预处理出这个和式,统计答案。


11.4

CF1366D Two Divisors

题面

题解

假如已经选出了两个因数 \(x,y\) ,满足 \(\gcd(x+y,a)=1\) 。

令 \(d=\gcd(x,y)\) ,设 \(x'=\frac{x}{d},y'=\frac{y}{d}\) ,可以得到式子 \(\gcd(d\times (x'+y'),a)=1\) 。因为 \(x,y\) 都是 \(a\) 的因数,那么 \(d\) 也是 \(a\) 的因数,则 \(\gcd(d\times(x'+y'),a)\geq d\) 。为了满足 \(\gcd(d\times (x'+y'),a)=1\) ,一定有 \(d=1\) ,则有 \(x\bot y\) 。

将 \(a\) 分解质因数,\(a=\prod_{i=1}^mp_i^{c_i}\) ,取 \(x=p_1^{c_1},y=\frac{a}{x}\) 即可。

P5651 基础最短路练习题

题面

题解

由所有简单环的异或和都为 \(0\) 可知,两点之间的所有简单路径的长度都是相同的。那么只需要随意求出一条路径即可。

CF1445D Divide and Sum

题面

题解

考试的时候没推出来/kk。

将 \(a\) 数组升序排序,令 \(L=\{a_1,a_2,\cdots,a_n\},R=\{a_{n+1},a_{n+2},\cdots,a_{2n}\}\) 。

有结论:将 \(a\) 分成任意两个集合 \((p,q)\) ,对于任意的 \(i\) ,\(x_i\) 和 \(y_i\) 不会同时在 \(L\) 或者 \(R\) 中。

证明:

假设 \(x_i\) 和 \(y_i\) 同时在 \(L\) 中。因为 \(p,q\) 中元素单调,那么有 \(i\) 个元素小于等于 \(x_i\) ,有 \(n-i+1\) 个元素小于等于 \(y_i\) ,并且它们互不重合,由于小于等于 \(x_i,y_i\) 的元素只能在 \(L\) 中,得出 \(L\) 中有 \(n+1\) 个元素,与上文矛盾。

证毕。

那么 \(f(p,q)\) 的值就是一定的,答案即为:

\[f(p,q)\times {2\times n \choose n} \]


11.5

P2662 牛场围栏

题面

题解

同余最短路板子题。

求出 \(d_i\) 后,答案即为:

\[\max_{0\leq i<\mathrm{base}}d_i-\mathrm{base} \]

标签:十一月,记录,题面,题解,短路,times,dp,mathrm
来源: https://www.cnblogs.com/syc233/p/13919456.html