首页 > 其他分享 >2024.10.11总结

2024.10.11总结

时间:2024-10-11 16:15:21浏览次数:18  
标签:11 总结 2024.10 right 唐死 sum 遗物 dp left

本文于github博客同步更新

最简单但挂分最惨的一集。

唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我唐

A:

首先特判 \(n=1\),考虑 \(n>1\) 的情况:

容易发现在树为链的时候 \(ans\) 最大,为 \(\left\lfloor\frac{n}{2}\right\rfloor+1\);在树为菊花的时候 \(ans\) 最小,为 \(2\),继续往下找规律,发现将一个链尾指向链首,形成链套菊花,每次操作可以使答案减少 1。

然后模拟即可。

B:

对于每个点,维护 \(val_i\) 为当前点能跳到的最靠左的端点。

对于 \(\forall i\in[1,n],c_i=c_n\),每次二分 + 哈希找到 \(L_{min}\),\(val_i=\min(L_{min},val_j,j\in[L-1,i])\),其余的 \(val\) 赋为 \(n+1\) 即可。

树状数组维护即可,时间复杂度为 \(\mathcal O(n\log n)\)。

C:

先考虑第二条限制,容易发现 \(B\) 中的数不能重复,接着打表发现 \(1\) 只能放在第一位,\(2\) 和 \(4\) 只能出现一个,\(3\) 只能放在最后,其余的数需倒序放置。

差不多是这样:\(1,n,n-1...\{4,2\},3\)。

现在带入第一条限制,容易发现最终取出的序列形态只有两种:

  • \(\{1,x,y,z\}(x>y>z>1)\)
  • \(\{1,x,y,2,3\}(x>y\neq4)\)

设 \(f_{i,j}\) 为将 \(A_j\) 放在 \(B_i\) 的方案数,不难发现转移区间为 \(f_{i-1}\) 的一段后缀,开若干个树状数组优化转移即可。

时间复杂度为 \(\mathcal O(n\log n)\)。

D:

不会,没讲,广二老哥一个没改我改集贸。

扔个题解:

我们先忽略把圣遗物分成两份这个限制,思考该弱化版下二人的策略。

可以感知到,在最终局面中,对于每一个圣遗物,二人都会尽量做到平均分配。

这说明对于 \(s_{i} \not \equiv-1\left(\bmod 2 a_{i}\right)\) 的圣遗物 \(i\) ,二人的收益都是 \(c_{i}\left\lfloor\frac{s_{i}}{2 a_{i}}\right\rfloor\) 。而对于 \(s_{i} \equiv-1\left(\bmod 2a_{i}\right)\) 的圣遗物 \(i\) ,我们按 \(c\) 从大到小将其排序成 \(p_{1}, p_{2}, \ldots, p_{m}\) ,则先手的额外收益为 \(\sum_{2 i+1 \leq m} c_{p_{2 i+1}}\) ,后手的额外收益为 \(\sum_{2 i \leq m} c_{p_{2 i}}\) 。

回到原问题,我们据此 dp ,将所有圣遗物按 \(c_{i}\) 从大到小排序,用 \(dp_{i, j, c_{1}, c_{2}}\) 表示考虑完前 \(i\) 种圣遗物,第一份圣遗物个数为 \(j\) ,两份中 \(s_{i} \equiv-1\left(\bmod 2 a_{i}\right)\) 的圣遗物 \(i\) 的个数的奇偶性分别为 \(c_{1}, c_{2}\) 小 w 的最大收益。转移时同时考虑一般贡献和额外贡献即可。

时间复杂度 \(\mathcal O\left(\left(\sum s_{i}\right)^{2}\right)\) ,可以通过第二个 Subtask。

注意到,令其中一份中圣遗物 \(i\) 的数量为 \(x_{i}\) ,对于 \(x_{i} \bmod 2 a_{i}\) 值相同的 \(x_{i}\) ,最终两份中圣遗物 \(i\) 的贡献和是相同的,这启示我们只枚举 \(x_{i} \in\left[0,2 a_{i}\right)\) ,但注意到我们原来的 dp 是在做背包的同时计算贡献,如果这样处理后背包便无法进行,于是我们考虑将背包分成 \(\bmod 2 a_{i}\) 的余数和 \(2 a_{i}\) 的倍数两部分做。

特判掉 \(s_{i}<2 a_{i}\) 的圣遗物,这些圣遗物我们用之前的 dp 暴力做,对于剩下部分,我们将余数做背包的同时算贡献,这部分复杂度为 \(\mathcal O\left(\left(\sum a_{i}\right)^{2}\right)\) 。

对于倍数部分的背包,我们需要知道倍数枚举的上界,但这和余数的实际值有关,看似无法继续。但观察到,可能的上界只有两种:令圣遗物 \(i\) 分给第一份的个数的余数部分为 \(r_{i}\) ,则当 \(r_{i} \leq s_{i} \bmod 2 a_{i}\) 时,上界为 \(\left\lfloor\frac{s_{i}}{2 a_{i}}\right\rfloor\) ,否则为 \(\left\lfloor\frac{s_{i}}{2 a_{i}}\right\rfloor-1\) 。

我们不妨统一令上界为 \(\left\lfloor\frac{s_{i}}{2 a_{i}}\right\rfloor-1\) ,同时对于余数部分的 dp ,如果 \(r_{i} \leq s_{i} \bmod 2 a_{i}\) ,我们多进行一个大小为 \(r_{i}+2 a_{i}\) 背包转移即可。

于是我们只用关心倍数部分的背包,即:给定 \(n\) 种物品,第 \(i\) 种物品有 \(L_{i}=\left\lfloor\frac{s_{i}}{2 a_{i}}\right\rfloor-1\) 个,每一个的体积为 \(V_{i}=2 a_{i}\) ,问能不能凑出某个固定大小的背包。暴力做还是是 \(\mathcal O\left(\left(\sum s_{i}\right)^{2}\right)\) 的,但这显然可以 bitset 优化,可以通过第三个 Subtask。

做可行性 dp 显然是浪费的,我们更改定义为 \(g_{i, j}\) 表示前 \(i\) 种物品想凑出大小为 \(j\) 的背包,第 \(i\) 个物品至少要选多少个,不合法则 \(g_{i, j}=-1\) 。

对于该 dp ,显然可以通过分讨 \(\mathcal O(1)\) 转移,时间复杂度 \(\mathcal O\left(n \sum s_{i}\right)\) ,可以通过第四个 Subtask。

考虑继续优化。我们发现,其实很多物品都是等价的。具体地,由于 \(2 a_{i}\) 只有最多 \(\sqrt{\sum} a_{i}\) 种,故我们把体积相同的物品合并,再做刚刚的 dp ,时间复杂度 \(\mathcal O\left(\sqrt{\sum} a_{i} \sum s_{i}\right)\) ,可以通过本题。

标签:11,总结,2024.10,right,唐死,sum,遗物,dp,left
From: https://www.cnblogs.com/Mitishirube0717/p/18458639

相关文章

  • Windows11搭建Speedtest测速服务器
    在Windows11上配置Speedtest服务器下载本教程中所需要的软件列表开支在下载好以上软件后,下面开始正式进行服务器搭建所有软件打包地址1.在Windows11上安装ISS服务a.点击Start--->System--->Optionalfeature进入b.选择最下面的MoreWindowsfeaturec.勾选需要开......
  • Win11系统提示找不到storagewmi.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个storagewmi.dll文件(挑选合适的版本文件)把......
  • html面试题总结
    文章目录1.什么是DOCTYPE,有何作用2.H5有哪些新的元素和新特性3.cookie、sessionStorage和localStorage的区别4.script、scriptasync和scriptdefer的区别5.行内元素有哪些?块级元素有哪些?空(void)元素有哪些?6.页面导入样式时,使用link和@import有什么区别7.title和h1......
  • 20241011 大二上 数据结构与算法 堆
    1.堆排序堆排序是一种原地排序算法,即不需要额外的空间来存储数据,只需要在原数组上进行操作即可。堆排序是一种不稳定排序算法,即可能会改变相同元素的相对顺序。例如,如果数组中有两个相同的元素,它们可能会在排序过程中被交换,导致它们的顺序发生变化。堆排序的时间复杂度为O(nlog......
  • [自用] 虚拟机windows11-x64,安装MySQL 8.0.32,记录
    前面忘截图了提示要求电脑里安装VS2015/2017/2019,但虚拟机里只有VS2013。网上说可以一起装,但是我虚拟机配置不太行,再说吧,不行用我自己笔记本,虽然也有点菜,但比虚拟机强。虚拟机配置安装之后的配置密码三个旧的特殊符号这少一步,写的是点击execute来应用配置apply......