11.20 模拟赛

news/2024/11/20 20:15:53/文章来源:https://www.cnblogs.com/2huk/p/18559183

总结

完啦 A 不会做。肯定是神秘贪心题。不太好模拟啊。

算了猜个结论吧。\(m=1\) 是经典问题,把这个稍微引申一下。得到了一个 multiset 维护的做法。

然后猜对了。15min 切掉。很快码了一个对拍然后一直拍到比赛结束。

看 B。感觉不难。尝试设计 DP。

发现我啥也不会,所以先写个暴力找规律吧。

法克,暴力咋写。先跳吧。

C 一眼不可做啊。基本上没怎么想。看 D。

\(20\) 分不难。暴力排个序就好。\(n=2000\) 平方带 \(\log\) 能过吗?……时限 6s 那没事了。

想想性质 A。这不暴力,每次求个区间内的后继,然后最多只会跳 \(\log\) 次吗?主席树启动!

然后 \(60\) 到手。好水啊。

正解是不可能的。润了。回到 B。

稍微画了几个图模拟了一下,差不多在 10:50 左右的样子得到了一个很劣而且很没前途的解法。复杂度未知,大概能得 \(55\) 分。

写了很久,中间的关键部分重构了三四次。发现是 \(\mathcal O(n^5)\) 的。或许 \(40\) 分。

但是样例不过啊。调了很久(差不多在结束前 10min)过了样例。

结果跑得很快啊。最后一个大样例只跑了 6s。卡常启动!

然后时间太紧了只卡到 4.9s。不管了交吧。

\(100+60+0+20\)。T4:if (l1 == r1 && l2 == r2)

总结

好的:

  • T2 写完+调完了。虽然和正解 几乎没有关系

不足:

  • T4 若只错误。白丢 \(40\)
  • 基本没给 T3 的思考时间。

知识

T1:贪心,mutiset

T2:DP,组合

T4:复杂度分析,主席树

题解

A. 机械师 II

贪心。数据结构维护当前每个机械玩偶已经解决的 \(r\) 最大的事件。将事件按 \(r\) 排序,每次找到数据结构中 \(\le l_i\) 的最大的机械玩偶,让它做 \(i\)。找不到就跳过这个事件。

不难发现这个数据结构可以是 multiset

B. 守墓人

首先求 \(f(u)\) 表示 \(u\) 的子树有多少种 dfs 方法。不难发现:

\[f(u) = |son_u|!\times \prod_{v \in son_u} f(v) \]

显然一个子树内的点在 dfs 序上是连续的。或者说,遍历到 \(u\) 后,接下来遍历的 \(sz_u\) 个点一定是 \(u\) 的子树。

画个小图。比如我们想求 \(v\) 的答案。

image-20241120183825028

那么 dfs 序一定长这样:

image-20241120183316700

其中两个蓝色括号里,一定会填上 \(1,3,4\) 这些子树。比如:

image-20241120183319453

此时还有一段前缀和一段后缀未确定。因为这些点是 \(u\) 子树外的。

于是我们可以只对子树外的点的顺序计数。令 \(g(u,x)\) 表示 dfs 序第 \(x\) 个位置是 \(u\),这个前缀和后缀的方案数。显然答案为 \(g(u,x) \times f(u)\)

如何转移?考虑 \(g(u) \to g(v)\) 的转移。

分别枚举 \(u\) 在 dfs 序中的位置和 \(v\) 在 dfs 序中的位置,不妨设为 \(i, j\),且 \(i < j\)

根据上面说的,\([i+1,j-1]\) 这一段肯定要填上 \(\{1,3,4\}\) 的子集的子树。剩下的要填在后面。dfs 序中剩下的位置已经被 \(g(u,i)\) 考虑了,不用管它。

还是这张图。如果这样填:

image-20241120183319453

那么转移条件是 \(sz_4+sz_1=j-i-1\)。然后 \(g(u,i) \times f(4) \times f(1) \times f(3) \to g(v, j)\)

显然这一坨 \(f\) 的乘积可以最后一块考虑。我们只需要考虑 \(f(u,i) \to f(v,j)\)。也就是求有多少个 \(\{1,3,4\}\) 的子集的 \(sz\) 和为 \(j-i-1\)

这是一个背包问题。对于一个 \(v\) 而言,计算这个答案的复杂度是立方级别的。也就是总复杂度 \(\mathcal O(n^4)\)

注意到子树 \(2\) 的根对应的这个集合是全集(\(\{1,2,3,4\}\))去掉一个元素。于是考虑先对全局做一遍背包,然后每次退掉一个元素。也就是 [P4141消失之物](P4141 消失之物 - 洛谷 | 计算机科学教育新生态) 了。

提交记录 #719496 - 梦熊联盟

D. 先知

考虑这样操作:

  • 找到 \([l1,r1]\) 中的最大值 \(x\)
  • 找到 \([l2,r2]\) 中最大的 \(<x\) 的值 \(y\)
  • 如果 \(y \ge \lfloor x / 2 \rfloor\) 则说明答案为 \(x+y\),直接退出。
  • 否则,找到 \([l1,r1]\) 中最大的满足 \(\lfloor x' /2 \rfloor \le y\)\(x'\)。如果 \(x' > y\) 则说明答案为 \(x+y\),直接退出。
  • 否则,\(x \gets x'\),回到第二步。

正确性显然。

复杂度为啥正确?

如果第三步没有退出,一定有 \(y < \lfloor x / 2 \rfloor\)。如果第四步没有退出,一定 \(x' \le y\)。也就是说如果这一轮没有结束那么 \(x\) 一定减少一半。

所以复杂度是 \(\log\) 的。

找区间内一个数的前驱可以主席树。总复杂度 \(\mathcal O(n \log V \log n)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837503.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十二课 接口文档和编写接口测试用例(12.1)

一、熟悉接口文档和分析接口 1、发送接口文档 2、分析接口文档 3、了解需要测试接口,分析需求文档接口请求参数:接口返回参数:成功接口返回参数:失败================================================================================ 整理接口:(自己项目有哪些借款) …

校园防欺凌系统 AI语音监测求救打架行为系统

校园防欺凌系统 AI语音监测求救打架行为系统利用在校园内的宿舍、卫生间、楼梯角等隐蔽位置安装的AI智能语音报警终端,校园防欺凌系统 AI语音监测求救打架行为系统对这些音频进行实时分析,识别出“老师救命”、“别打我”、“有人打我老师”等关键词,就会立即触发报警机制。…

blog-2

前言 在过去的几周内,我们完成了答题程序-4, 家居强电电路模拟程序-1以及 家居强电电路模拟程序-2的练习,涉及多个知识点和编程技巧。整体来说,这三次题目集共包含了7道题目,题目难度逐步增加。 题量: 答题程序-4(3道题), 家居强电电路模拟程序-1(3道题), 家居强电电…

dir()和help()函数

dir()是 Python 中的一个内置函数。它主要用于返回一个模块、类、对象等的所有属性(包括方法、变量等)的列表。这个函数在探索新的模块或者对象的功能时非常有用。 help()也是 Python 的一个内置函数。它用于查看对象(如函数、模块、类等)的详细帮助文档。这个文档包括对象…

11.20闲话-存档

呜呜呜存档 参考使用没有存档的软件,就像吃饭不给容器一般。故存档必然是极为重要的。 下面介绍Unity的几种存档方式。 代码出处 Part.1——PlayerPrefs 应该是最简单的存档方式。 但局限性也是显然的,只能存储int, float, string 三种类型,就像在文件中存储了三个map <s…

Integrating Streamlit and Langchain data analysis agent-entrance

url:https://www.cnblogs.com/devcxx/p/18550789 一、Streamlit introduce Streamlit is an open-source Python library for quickly building data visualization and interactive web applications. It is specifically designed for data scientists and engineers, using…

WPF的Popup自动显示隐藏

简单实现鼠标移过Popup自动显示和隐藏的功能; 在xaml.cs中实现,首先创建一个定时器,设置300ms的延时:1 DispatcherTimer timer;2 3 public Function1View()4 {5 InitializeComponent();6 7 timer = new DispatcherTimer()…

WPF绑定枚举并且显示特性文本

一、文件结构 二、文件内容 FlattenMethodEnum.cspublic enum FlattenMethodEnum{[Description("单点")]SinglePoint = 0,[Description("平均")]Average = 1,} }EnumBindingSourceExtension.csusing System.Windows.Markup; using System.Diagnostics.Cod…

【知识库搭建】提高企业知识管理和服务效率

在当今信息爆炸的时代,企业知识管理的重要性日益凸显。有效的知识管理不仅能够促进内部信息共享,提升团队协作效率,还能增强企业的核心竞争力。本文将探讨如何通过搭建知识库系统,特别是利用HelpLook工具,优化企业知识管理和服务流程,从而提高企业运营效率。 一、知识库搭…

高级程序语言设计第八个个人作业

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C 高级语言程序设计课程第五次作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400231 姓名:袁志华 作业 第11章 12367第12章 12389

人工智能之机器学习基础——贝叶斯(Bayesian Methods)

贝叶斯分类器 贝叶斯分类器是一类基于贝叶斯定理的统计学习方法,广泛应用于分类问题。其核心思想是通过计算后验概率 P(y∣x),将输入样本 x 分类到具有最大后验概率的类别。 1. 贝叶斯定理 贝叶斯定理是概率论中的基本法则,用于描述条件概率的关系: 其中:P(y∣x):在已知…