XN2025 集训记录 D6

news/2025/4/2 6:09:37/文章来源:https://www.cnblogs.com/youlv/p/18796884

XN2025 集训记录 D6

今天西安也降温了 , 一晚上没睡好 , 做了能有三四个梦 . 梦到自己去神秘巨大建筑群集训 , 找不到同桌还没找明白房间 . . . 这都啥跟啥 .

但是梦到的场景还挺艺术的 , 而且阈限空间感没那么强 , 甚至可以说是感觉基本上都不是非欧空间 , 大概就是地面上是极大面积建筑相连 , 非常洁净 , 是全包围室内但是天花板非常高 . 有大量人工造景 , 都偏现代风格 , 而且非常洁净 . 照明是暖色 , 整体不算很明亮 , 但是感觉比较舒适 .

而功能性的房间全都通过比较窄 , 没有窗户 , 有包裹感的走廊以及电梯连接 , 整体为偏古典风格 , 很明亮很温暖的风格 .

唉回味一下还是太艺术了 .

一晚上大脑全用来渲染了 , 起床就头疼


水题场

但是因为晚上没睡好然后直冲 T3 导致 T1 T2 俩更水的东西摆了 . 最后写不完了 . 我的 AK 场啊呜呜呜

模拟赛184/300 还是感谢出题人照顾我的水平拿水题组的模拟赛 .


T1 题意

CF1469F

初始有一个根节点 , 以及 \(n\) 条链 , 每条链点数为 \(a_i\) . 初始每个点 \(tag_i=1\) , 可以进行若干次如下操作 :

  • 选择两个点 \(u,v\) , 要求 \(tag_u=tag_v=1\) . 加边 \((u,v)\) 并把 \(tag_u\gets 1,tag_v\gets 1\)

任意操作若干次 , 最小化所有 \(tag=0\) 的点中 , 与 \(rt\) 距离第 \(k\) 大 , 或者在不能产生第 \(k\) 大的点时输出 inf.


T1 题解

无解可以直接特判 .

通过简单手玩 , 发现这个里面我们不太关心具体连成的图的形态 , 而是关心当前所有点与 \(rt\)\(dis\) .

考虑维护当前所有 \(tag=0\) 且与 \(rt\) 联通的点 , 并且尝试逐一把链加到连通块上 . 这个操作相当于在可用点集中选出一个 \(dis_u\) , 把它从集合中删除 , 然后在链上找一个位置 \(v\) , 把链上除 \(v\) 之外的点的 \(dis\) 计算出来加入集合 .

这里能观察出一些结论 :

  1. 链上选的位置 \(v\) 一定是链中点最优 .

    考虑加入的点的 \(dis\) 相当于两条公差 \(d=1\) 首项 \(dis_u+2\) 的等差数列 , 那么肯定是平均分配点最优 .

  2. 每次一定用当前最小 \(dis_u\) 来更新最优 . 考虑删去 \(dis_u\) 后至少插入一个 \(dis_u+2\) .

    • 如果答案 \(<dis_u+2\) , 那么当前其他任何操作都不可能产生新的 \(<dis_u+2\) 的数 , 因此操作前求第 \(k\) 大就是答案 .
    • 否则 , 只有 \(<dis_u+2\) 的值域部分 , 每个位置的数可能变劣 , 其余部分全都最优 , 而 \(<dis_u +2\) 的部分已经不在答案考虑范围内 , 唯一作用就是更新其他的点 , 根据贪心 , 优先选 \(dis_u\) 最小的 .
  3. 一定是按 \(a_i\) 从大到小插入点集最优 .

    考虑调整法 , 假设 \(a_i<a_j\) , 且 \(i\)\(j\) 先插入 , 则插入时选择的 \(dis_u\) 必然有 \(dis_u(i)\le dis_u(j)\) 那么把 \(j\)\(i\) 替换位置 , 原来由 \(i\) 插入的 \(a_i\) 个点在 \(j\) 插入时也会出现 , 而 \(j\) 多出的 \(a_i-a_j\) 个点在没有其他额外代价的情况下 , 用了更小的 \(dis_u(i)\) 来插入 , 必然不劣 .

因此只需从大到小插入 \(a_i\) , 然后每次插入后查询一个第 \(k\) 大即可 .

考场上脑子抽了 , 到这一步想着写个暴力得了上了个 treap 维护 . 后来一下想到这玩意直接在值域上 , 搞个动态开点的线段树不就完事了 , 当然没时间写了 .

代码实现也很简单 , 纯水题 .


T2 题意

CF1476F

有一排 \(n\) 个人 , 每个人有向左右的视野 \(L_i,R_i\) , 每个人可以在看 \([i-L_i,i)\) 区间和 \((i,i+R_i]\) 区间中二选一 , 要求判断能否实现 , 如果能 , 输出方案 .


T2 题解

首先考虑一下 dp , 设 \(f_{i,j,k}\) 表示填考虑到前 \(i\) 个人 , 前 \(i\) 个人中最靠前的没覆盖到的位置是 \(j\) , 向后多覆盖到了 \(k\) 能否实现 .

发现这个 dp 形式非常冗余 , 考虑后面的人 \(t\) 想要不上前面没覆盖的位置 \(i\) , 只能选向左 , 并且一直覆盖到 \(j\) , 这个过程中 , \([i+1,t-1]\) 的决策是没有意义的 , 它们完全可以全选向右 .

因此 , 我们只考虑前 \(i\) 个人能覆盖多长的前缀 \(f_i\) , 考虑第 \(i\) 人转移 :

  • 向右

    \[f_i=\left\{\begin{matrix} f_{i-1}& ,f_{i-1}<i\\\max(f_{i-1},i+R_i)& ,f_{i-1}\ge i \end{matrix}\right. \]

  • 向左

    \[f_i\gets \max\limits _{k\in (j,i)} k+R_k (f_j\ge i) \]

因为 \(f_i\) 单调不降 , 所以后一个转移可以二分实现 \(O(\log n)\) 转移 .

这样就 \(O(n\log n)\) 解决了这道题 .


T3 题意

CF1067D

有若干组 \((a_i,b_i,p_i)\) , 每个组有激活/未激活两种状态 , 初始分数 \(score=0\) , 所有组状态都是未激活 , 执行 \(T\) 轮以下操作 :

  • 选择一组 \((a_i,b_i,p_i)\)
  • \(p_i\) 的概率 , 可以增加分数 : 若当前组未激活 , \(score+=a_i\) , 若已激活 , \(score+=b_i\) . 然后可以任选一组激活.
  • 其余 \(1-p_i\) 的概率 , 什么也不做 .

求所有可能策略中 , \(score\) 期望的最大值 .

保证对于任意 \(i\) , $ a_i\le b_i,p\in(0,1)$


T3 题解

首先考虑如果有一次机会来激活一个位置 , 一定是选一个 \(b_i p_i\) 最大 , 即单次期望最大的位置来激活 , 然后一直选 , 设 \(\max b_ip_i=W\) .

现在考虑的问题是一开始没有激活的时候选谁 , 这时会有一个矛盾在 , 就是 \(a_ip_i\) 较大的可以使第一次取值最大 , 而 \(p_i\) 较大则更可能进入取 \(W\) 的阶段 , 因此样例里第一次取和如果第一次不成功第二次继续取 , 所取的 \(i\) 不同 . 所以联想到 dp ( 同时这里已经有一个凸包的意思了 ) .

\(f_i\) 为还剩 \(i\) 轮时的最大期望 , 容易写出转移 :

\[f_{i+1}=\max( (1-p_j)\times f_i+p_j\times (a_j+iW)) \]

这样就有了暴力分 .

考虑优化这个东西 , 这个形式感觉很像凸包 , 把每一组视作一条直线 \(g_j(x)=p_j x+a_jp_j\) . 考虑把转移式化成带这个函数的形式

\[f_{i+1}=\max ( f_i+a_jp_j+p_j(iW-f_i)) =\max(f_i+g_j(iW-f_i)) \]

如果建出凸包然后每部转移都二分一下 , 会有 $O(T\log n) $ 的解法 .

考虑让复杂度与 \(T\) 无关 , 通过感性理解 , 容易发现 \(iW-f_i\) 似乎是递增的 , 毕竟 \(Wi\) 是理想情况下的最优解 , 而 \(f_i\) 每向后转移一步 , 就意味着多空了一轮 . 考虑严谨证明下 : 设 $ R_i=iW-f_i$ , 则

\[R_{i+1}-R_i=W-(f_{i+1}-f_i) \]

\(f_i\) 的单轮收益显然不大于 \(W\) , 因此有单调性 .

这可以联想到二分凸包上的转折点 , 也就是通过二分 , 得到凸包上的每段线段分别对应哪些区间的转移 .

这里二分的自变量包含 \(f_i\) , 所以需要把 \(f_i\) 用当前直线算出来 , 考虑用矩阵快速幂优化这个过程 .

这样是 \(O(n\log^2n)\) 的.

考虑把二分换成倍增 , 复杂度就是 \(O(n\log n)\) 的 .

考场上觉得这道题比较可做就先上手 T3 了 , 没想到前两位其实比 T3 还可做 .


. . . 下午改完题就有点摆 , 感觉已经彻底没动能了 , 明天正好缓一天 , 去看兵马俑 . (牢秦始皇的定制等身手办).

今天太冷了 , 还是明天再洗澡罢 .

🧊 Go on then ↑ ICARUUUUUUUUUUS → take your ↓ turn → 🧊

🧊 You always fly right UUUUUUP ↑ until it burns → 🧊

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

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

相关文章

树上差分学习笔记+做题记录

树上差分 点的差分求路径 \(u-v\) 上的点被经过的次数. \(cnt[x]\) 表示点 \(x\) 被经过的次数. 核心代码:cnt[u]++; cnt[v]++; cnt[lca(u,v)]--; cnt[father[lca(u,v)]]--;边的差分求 \(u-v\) 路径上每条边的经过次数 \(cnt[x]\) :代表 \(x\) 向上的边经过的次数. 核心代码:cn…

小迪安全|web安全|渗透测试|小白学习笔记Day1

Day1-概念名词 域名 什么是域名例www(可以换).xxx.com(可以换) 可以简单的理解为我们平常使用的网址,具体可以参考:https://baike.baidu.com/item/域名/86062域名在哪里注册国内像万网,新网都可以注册域名,可以在上面提及的网站上面进行查询以及进行注册什么是二级域名以及…

蓝桥杯1

今天写了写蓝桥杯的顺序结构程序设计类型的题,相关数学计算,输入输出复习。

分布式架构下出现的503问题

今天写完接口之后发现客户端503了,查看后端代码报的错 先看最下面的caused by:OK有点抽象,看看上面报的什么:哦我好像有点理解,该不会是我sql配置写错了吧,看看:id怎么会有一点报红呢?哦,是http没有加s啊有些时候就是会出现这种很扯的问题

经典算法 - 贪心算法

贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。1. 基本定义 贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。 局部最优推出全局最优。2. 分发饼干 力扣455题。 问题描…

经典算法 - 回溯法

回溯法是一种纯暴力的搜索,并不是一种高效的算法。1. 基本概念 递归和回溯相辅相成。只要有递归,就会有回溯。 回溯法是一种纯暴力的搜索,并不是一种高效的算法。 回溯法可以解决的问题:组合问题 切割问题 子集问题 排列问题 棋盘问题如何理解回溯法 回溯法,都可以抽象为一…

Spring AOP 应用

AOP可以将一些公用的代码,自然的嵌入到指定方法的指定位置。Spring AOP 应用 1. 介绍 AOP:面向切面编程,对面向对象编程的一种补充。 AOP可以将一些公用的代码,自然的嵌入到指定方法的指定位置。 比如:如上图,我们现在有四个方法,我们想在每个方法执行一开始,输出一个日…

RHO-1: Not All Tokens Are What You Need 阅读笔记

论文地址 开源代码 论文背景 现有的大语言模型主要通过增加参数来提升性能,忽略了数据中的一些噪声tokens。 主要难题:去除tokens可能会导致语义产生偏差,关键在于如何能准确识别无效tokens。 主要贡献 先在高质量语料库对模型进行训练,根据期望分布对tokens进行评分,过滤…

接口测试——jmeter的实战

一、接口的请求方式 1、post请求 (1)添加线程组(2)添加http请求(3)填写http请求内容断言(4)查看结果(5)保存(6)运行2、get请求二、依赖接口 1、登录接口2、用户接口3、配置元件中加入cookie管理器优化多接口:http请求默认值三、关联接口省份接口:http://www.webx…

2023盘古石决赛复现

很大功夫。2023盘古石决赛复现 VC容器密码2ej)!,[JN-U;wm19J=d9sZt_L6#bf+}[ 这套题做起来感觉非常不舒服,学习到许多,菜是原罪。 感谢各位佬的博文指点。 流量分析 计算流量包文件的SHA256值是?[答案格式:字母小写] 2d689add281b477c82b18af8ab857ef5be6badf253db1c192352…