CF1802 题解

news/2025/1/18 3:28:31/文章来源:https://www.cnblogs.com/snowycat1234/p/18516642

CF1802 题解

A likes

最大值一定是一个前缀全部关注, 一个后缀全部取关.

最小值一定是一个前缀关注完立刻取关, 后面全部是关注.

模拟即可.

B Settlement of Guinea Pigs

那些未确定性别的只能每个单独占一个笼子, 其他的需要我们去分配.

如果有 \(m\) 个松鼠被确定性别了, 其中 \(k\) 个是男性, 那么需要 \(\lceil\frac{k}{2}\rceil + \lceil\frac{n-k}{2}\rceil\) 个笼子, 对 \(m,k\) 奇偶分讨即取最大值得答案.

C The Very Beautiful Blanket

由题意得, \(a_{i,j}\oplus a_{i+1,j}\oplus a_{i,j+1}\oplus a_{i+1,j+1} = f_{i\bmod 2,j\bmod 2}\) 只有 \(4\) 种取值, 观察样例发现有数字重复的概率不大, (并且大概率与位运算有关 ps: 正解确实是位运算). 这样的话, 我们只要构造出第一行和第一列的 \(a\) , 并且决策出 \(f\) 的四个值就可以唯一确定整个 \(a\) 矩阵.

如何决策呢? 发现重复的概率并不高, 直接在允许的值域内随机即可.

D Buying gifts

\(n\) 个物品 \((a_i,b_i)\) , 需要选择两个不同物品 \(x,y\) , 使得其他的物品要么 \(a_i < a_x\) , 要么 \(b_i < b_y\) , 使得 \(|a_x-b_y|\) 最小.

把它画到二维平面上, 就意味着我们要用两个半平面覆盖所有特殊点, 如图所示.

image

我们枚举 \(x\) (也就是蓝点), 他会覆盖他左边的所有点, 那要想覆盖其他的点, 这个点的 \(b\) 就不能小于右侧红点的 \(b\) (也就是说所有红色点都是合法决策点).

这样的话, 我们用 set 维护左边的所有点的 \(b_i\), 在合法范围内 (高于右侧红点) 寻找最接近于 \(a_i\) 的即可.

注意有 \(a_i\) 相同时的边界情况.

E Music Festival

我们考虑动态规划, 每一段数列能成为最大值的数的个数是有限的, 比如 \([1,3,2,4,5]\) 的可能就只有 \([1,3,4,5],[3,4,5],[4,5],[5]\) 总共 \(4\) 种.

所有可能的这样的序列个数不会很多, 这个数\(cnt \leq \sum n_i \leq 2 \times 10^5\).

发现我们只关心每一个可能段的最小值 \(l_i\) , 最大值 \(r_i\) , 长度 \(w_i\), 因此我们可以把所有的这样的序列收集起来, 按照 \(l_i\) 排序, 再用动态规划去模拟拼接的过程.

\[f_i = \max_{j<i \wedge r_j < l_i>}(f_j) + w_i \]

这是个类似于二维偏序的 dp , 用 BIT 维护即可.

F The way home

我们发现, 最优策略形如在一个地方 \(x_{i}\) 一直赚钱, 跑路, 在另一个地方 \(x_{i+1}\) 一直赚钱, 跑路...

其中满足 \(c_{x_1} < c_{x_2} < \dots < c_{x_k}\)

这是因为如果后面的 \(c\) 更小, 那么把这次赚的钱放到前面去赚只要更少的次数就能完成, 更优.

这样, 我们设 \(f_{u,best}\) 表示目前走到 \(u\) , 上一次赚钱是在 \(best\) 的最优策略.

一个最优策略用一个二元组表示 \((t_i,re_i)\) 表示目前赚钱 \(t_i\) 次, 剩余 \(re_i\) 块钱.

但是无法比较二元组之间的优劣怎么办?

我们发现贪心的先保证 \(t_i\) 更小, 再保证 \(re_i\) 最大一定更优.

为什么呢? 因为所有方案 \(re_i\) 都会小于 \(c_{best}\) (如果大于等于那就可以少赚一次钱.), 那么 \(t_i\) 小的方案就可以再演出一次得到方案 \((t_i+1,re_i+c_{best})\) , 这个二元组会完爆掉 \(t_i\) 较大的方案, 因此贪心是对的.

这个转移只会从 \(t_i\) 小的转移向 \(t_i\) 大的, 因此用类似于 dijkstra 的方式转移即可.

G Gasoline prices

快跑啊孩子, 这题卡常

我们用并查集去维护相等关系, 然后每一个不一定相等的元素决策, 乘法原理即可.

我们发现有效的相等关系连边只会有 \(n-1\) 次(树的边数是 \(n-1\) ), 这样, 问题转化为如何快速找到有效的连边位置.

我们发现, 对于一次链操作, 我们把每个点的点权看成他的并查集代表元, 如果一个前缀链都是无效的, 那么前缀链的权值连起来形成的串是一样的.

那么我们只要每次都二分+哈希去做就可以了, 维护哈希用树剖就可以了.

最后的问题是一次 merge 好多个点的点权都会变, 怎么办呢? 启发式合并! 两个 log 就做完了.

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

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

相关文章

DBeave如何查看数据库表的DDL创建语句

前言 我们在使用DBeave时,有时候是需要看一下某个表的创建语句的,这样方便我们在其他数据库创建该表。 那么,我们呢应该如何查看表的创建语句呢? 如何查看DDL 首先,我们选择我们要查看的数据库表,然后鼠标双击下该表。然后,我们点击下上方的属性,然后在下面再点下DDL选…

20222424 2024-2025-1 《网络与系统攻防技术》实验三实验报告

20222424 2024-2025-1 《网络与系统攻防技术》实验三实验报告 1.实验内容 (1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程(2)通过组合应用各种技术…

人工智能实验报告1

​ 姓名:熊俊松________________________ 班级:2220422__________________________________ 学号:20222024234_______________________ 实验题目:___________________________ **回归 **___________________________________ 实验目的:掌握回归算法的编程实现细节,要求…

数据采集与融合技术第三次作业

作业内容 作业①: 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如:中国气象网(http://www.weather.com.cn)。使用scrapy框架分别实现单线程和多线程的方式爬取。 –务必控制总页数(学号尾数2位)、总下载的图片数量(尾数后3位)等限制爬取的措施。 主要代码:…

2024年网鼎杯青龙组 pwn

pwn2 开局泄露栈地址,又是栈溢出,直接栈转移拿下 from pwn import * from LibcSearcher import LibcSearcher #from Crypto.Util.number import bytes_to_long,bytes_to_long #--------------------setting context--------------------- context.clear(arch=amd64, os=linux…

新东方在线视频课程资料下载工具,如何在电脑端下载新东方在线视频课程讲义到本地?

一. 安装新东方在线课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/koolearn_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学…

强连通分量学习笔记+杂题

图论系列: 前言: 僕は 明快さ故にアイロニー 優柔不断なフォローミー 後悔後悔夜の果て 相关题单:戳我 一.强连通分量相关定义 基本摘自oi wiki ,相关定义还是需要了解。(实际就是搬了个oi wiki) 强连通分量主要在研究有向图可达性,针对的图类型为有向弱联通图。 1.强连通…

CMake 生成器表达式---条件表达式和逻辑运算符

CMake 的生成器表达式用于在构建系统级别上进行条件判断和逻辑运算,它们通常用在目标属性和生成器表达式上下文中。这些表达式允许你根据不同的平台、配置或编译器来定制构建过程。【写在前面】 CMake 的生成器表达式用于在构建系统级别上进行条件判断和逻辑运算,它们通常用在…

ESP32-LVGL驱动框架

ESP32另一种LVGL驱动架构问题背景 最近在调试一个新屏幕的过程中,使用LVGL官方的lvgl_esp32_driver驱动,在我这个分辨率比较大(454 x 454)的屏幕下会出现,在分配完成buff后,若buff过大会出现,在刷屏的时候会这种警告。 txdata transfer > hardware max supported len研…

goland 把多个项目窗口合并到一个窗口

有时我们可能想把goland 每个项目窗口合并到一个窗口,每个项目以一个tab的形式展示,下面是合并的方法 点击「Window->Merge All Project Windows」即可

Word_共享编辑

打开链接 ? 点击右上角的"登录"点"编辑"→点"在桌面版中打开"共享编辑 ok

手把手教你如何下载中国大学mooc慕课上已关闭的视频课程和课件资料

随着线上教育的普及,越来越多的大学开始提供线上教育,以方便学生的在线学习。然而,有些课程在结束后就会被关闭,导致学生无法再次观看。如果你想下载这些已经关闭的视频课程,该怎么办呢?其实我们可以通过一些工具来下载这些已关闭的课程。这里以中国大学Mooc网站为例,教…