多校A层冲刺NOIP2024模拟赛20

昨天晚上打 ABC 了,所以今天才发。

T1 星际联邦

直接上 菠萝(Borůvka)算法就行了,当然还可以用线段树优化 prim算法,但是没打过只是口胡:就是维护当前的连通块,但一个点 $ i $ 加入连通块时,后面那些点就可以有 $ a_j - a_i $ 的贡献,前面的点可以有 $ a_i - a_j $ 的贡献,然后区间修改,同时自己不可以再被选,单点修改自己为 inf ,然后全局查询即可。

QED 赛时发明了一种 $ o(n) $ 做法,经证明是正确的,不会,run了。

T2 和平精英

\[越 \ \& \ 越小,越 \ | \ 越大。
\]

赛时能想到按值域去枚举,是 $ O(qn^2) $ 的,因为从值域上去枚举最后两者的答案是 $ v $ 的话, $ \gt v $ 的只能给 & , $ \lt v $ 的只能给 | , $ = v $ 的需要分讨一下:如果超过两个的话那就两边各一个,如果只有一个的话,那就分别给两边看看哪种可以。

然后其中一个 $ n $ 是因为我们要枚举求那些数 & 的和,和 | 的和,但是这可以直接用线段树优化到 $ log(n) $ ,于是有了 $ O(qnlog(n)) $ 的做法。

我们之所以枚举值域是因为他在 值 上满足 越 & 越小,越 | 越大。其实这个性质在 popcount 上也满足,所以我们直接枚举 popcount 是 v , 但是这个时候 $ = v $ 的情况又有点麻烦,因为我不确定他的值到底是多少,但是你发现如果他们的值不同的话,不管给谁他们最后的值一定不相同,所以特判相同之后继续上面的分讨即可。还有一个就是两个党派必须都有人,这也有点麻烦,但是就是多点细节的事。时间复杂度 $ o(nlog^2(n)) $

T3 摆烂合唱

每相邻的两个数进行一次运算之后会合并成一个数,那么让合并之后的这个数是原来两个数的 fa,然后最后一定会合并成一个数,对于最后这个数我们直到他的答案,然后我们树上DP就行。

如果我们此时知道了 $ fa $ 的所有信息,那我们如何得知 $ x $ 的答案?

先假设 $ y = 1 $

如果 $ x $ 不管选什么 $ fa $ 都 = 1/0 的话,那么 $ x $ 选择不同导致最后答案不同的概率 就会加上 $ fa $ 是 1/0 时最终答案不同的概率 $ \times $ y = 1 的概率。否则就会加上 $ fa $ 不同时的概率 $ \times $ y=1 的概率。

那么其他情况同理,我们只需要维护 $ ans_0 $ 表示 $ x $ 为 0 时答案不同的概率, $ ans_1 $ 表示 $ x $ 为 1 时答案不同的概率, $ ans_2 $ 表示 $ x $ 不同时答案不同的概率(也是最后要求的答案),然后从下到上算一个数为 0/1 的概率,再从上到下DP算答案即可。

T4 对称旅行者

这个题解讲的其实挺清楚的,所以以解释题解为主:

题解:

考虑先求旅行者 \(i\) 的期望位置,设为 \(f_i\),那么答案就为 \(f_i * 2^{m K}\)。

当旅行者 \(i\) 旅行时时,由于期望的线性性,\(f_i \longleftarrow \frac{1}{2}\left(2 f_{i-1}-f_i+2 f_{i+1}-f_i\right)=f_{i-1}+f_{i+1}-f_i\),考虑其几何含义,发现是把 \(f_i\) 关于 \(f_{i-1}\) 和 \(f_{i+1}\) 的中点对称,如果设 \(g_i=f_{i+1}-f_i\),那么跳第 \(i\) 枚棋子相当于交换 \(g_{i-1}\) 和 \(g_i\)。

因此一轮旅行就对应一个 \(1 \sim n-1\) 的置换,用类似快速幂的方法就可以求出 \(K\) 轮旅行后的 \(\left\{g_i\right\}\),再注意到 \(f_1\) 始终不变,就可以求出所有棋子的期望位置,时间复杂度为 \(O(n \log K)\)。

[==============]

首先 $ x $ 关于 $ y $ 对称后的位置可以写成 $ y*2-x $ ,所以第一个式子很好理解,然后就是后面的几何意义,我们把 $ f_{i-1} + f_{i+1} $ 看成 $ \frac{ f_{i-1} + f_{i+1} }{2} \times 2 $ ,所以这和对称的那个式子一样,然后就可以知道题解说的关于 $ f_{i-1} $ 和 $ f_{i+1} $ 的中点对称。

然后感性认为那个 $ g $ 就是正的,所以 $ g_i $ 表示 $ i $ 和 $ i+1 $ 之间的距离,所以 $ i $ 关于 $ i-1 , i+1 $ 中点对称时,就是交换了两者之间的距离,然后再感性理解一下 $ g $ 是负的也成立。

所以成了置换环,快速幂即可求出最后的 $ g $ 数组,然后从数据范围中得知 $ f_1 $ 不变,所以可以算出最后的 $ f $ 数组,然后 $ ans_i = f_i \times 2^{km} $ 。

多校A层冲刺NOIP2024模拟赛20的更多相关文章

  1. 多校B层冲刺NOIP20211111模拟12

    题面:PDFhttp://xn--gwt928b.accoders.com/pdf/10248/10248.pdfhttp://xn--gwt928b.accoders.com/pdf/10248/1 ...

  2. 【CJOJ P1957】【NOIP2010冲刺十模拟赛】数字积木

    [NOIP2010冲刺十模拟赛]数字积木 Description 小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢? 你的任务就是读入n个 ...

  3. 冲刺Noip2017模拟赛7 解题报告——五十岚芒果酱

    1.二叉树(binary) .二叉树 (binary.cpp/c/pas) [问题描述] 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: ()若左子树不空,则左子树上所有结点的值均小于它的根结 ...

  4. 冲刺Noip2017模拟赛8 解题报告——五十岚芒果酱

    1.鼎纹 [问题描述] 据说鼎纹的 种制造 式是 铜模印出来的,这是我国古代劳动 智慧 的结晶.铜模印过的地 ,会留下深深的印记,经过时间的炼化,洗 练成历史的遗存. 聪明的古代劳动人民拥有一个 a ...

  5. 冲刺Noip2017模拟赛4 解题报告——五十岚芒果酱

    题1 韬韬抢苹果(apple) [问题描述] 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹 果.每个韬韬都想要最大的苹果,所以发生了争执,为了解决他们的矛盾,出题人定了 ...

  6. 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱

    题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...

  7. 冲刺Noip2017模拟赛1 解题报告——五十岚芒果酱

    题1 国际象棋(chess) [问题描述] 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加2场对弈,最少参加0场对弈.每个人都有一个与其他人都不相同的等级(用一个正整数来表示).在对 ...

  8. 冲刺Noip2017模拟赛6 解题报告——五十岚芒果酱

    1.ksum(ksum) [问题描述] Peter喜欢玩数组.NOIP这天,他从Jason手里得到了大小为n的一个正整数 数组. Peter求出了这个数组的所有子段和,并将这n(n+)/2个数降序排序 ...

  9. 冲刺Noip2017模拟赛5 解题报告——五十岚芒果酱

    1. 公约数(gcd) [问题描述] 给定一个正整数,在[,n]的范围内,求出有多少个无序数对(a,b)满足 gcd(a,b)=a xor b. [输入格式] 输入共一行,一个正整数n. [输出格式] ...

  10. 冲刺Noip2017模拟赛3 解题报告——五十岚芒果酱

    题1  素数 [问题描述] 给定一个正整数N,询问1到N中有多少个素数. [输入格式]primenum.in 一个正整数N. [输出格式]primenum.out 一个数Ans,表示1到N中有多少个素 ...

随机推荐

  1. Java String 去掉特殊字符之前的内容方法

    为了去除字符串中某个特殊字符之前(包括该特殊字符本身)的所有内容,我们可以使用Java中的String类的substring和indexOf方法.这里,我将给出一个完整的代码示例,该示例会找到字符串中 ...

  2. 记一次解决OTA死机重启bug,如何分析与解决措施?!

    背景: 平台:stm32mp151平台 什么是OTA? 说起OTA我们应该都不陌生,它是一种可以为设备无损失升级系统的方式,能将新功能远程部署到产品上. 我们不仅可以通过网络下载OTA升级包,也可以通 ...

  3. Atcoder ABC298 D-F

    Atcoder ABC298 D-F D - Writing a Numeral 链接: D - Writing a Numeral (atcoder.jp) 简要题意: 问题陈述 我们有一个字符串 ...

  4. 零基础学习人工智能—Python—Pytorch学习(八)

    前言 本文介绍卷积神经网络的上半部分. 其实,学习还是需要老师的,因为我自己写文章的时候,就会想当然,比如下面的滑动窗口,我就会想当然的认为所有人都能理解,而实际上,我们在学习的过程中之所以卡顿的点多 ...

  5. SQLserver 数据库自定义函数

    起源 最近项目开发上使用的SQLserver数据库是2008版本,由于08版本的数据是没有字符串合并(STRING_AGG)这个函数(2017版本及以上支持)的,只有用stuff +for xml p ...

  6. 【Python自动化】之特殊的自动化定位操作

    今天有时间了,想好好的把之前遇到过的自动化问题总结一下,以后有新的总结再更新 目录: 一.上传文件(4.11) 二.下拉框选择(4.11) 1.Select下拉框 2.非Select下拉框 三.下拉框 ...

  7. docker高级篇1-dockeran安装mysql主从复制

    大家好,咱们前面通过十篇的文章介绍了docker的基础篇,从本篇开始,咱们的<docker学习系列>将要进入到高级篇阶段(基础篇大家可以查看之前发布的文章). 咱们先来介绍:docker复 ...

  8. Java 多个String(字符串)判断是否null(空值)

    Java 多个String(字符串)判断是否null(空值) 示例: String s = null; if (str1 != null) { s = str1; } else if (str2 != ...

  9. C++ string类型常用操作

    string类型操作 字符串切割 str.substr(索引,切割的个数)  ->  返回字符串 注意:第二个参数为切割的个数 string buf = "abcdefg"; ...

  10. QT疑难杂症之QML程序中如何使用文件系统模型QFileSystemModel?

    简介 本文介绍了 QML程序中如何使用树状控件TreeView展示QT文件系统模型QFileSystemModel中的数据,并给出了两种实现模式. 目录 QML程序中使用文件系统模型的代码 树状控件自 ...