首页 > 其他分享 >PKUWC 2025 题解

PKUWC 2025 题解

时间:2025-01-19 19:36:49浏览次数:1  
标签:pre 10 le log 题解 2025 PKUWC 电池

本人太菜,实在不会 T3,所以只有 T1,T2 的题解。

注:考场上只做出来了 Day1 T1,其他题参考了其他人的题解。

Day1

T1 电池检测

题面

有 \(a\) 个有电的电池和 \(b\) 个没电的电池,每次只能选择两个电池放进手电筒,只有这两个电池全有电才能让手电筒启动。问最坏情况下最少可以让手电筒启动的尝试次数。
多测。
数据范围: \(2 \le a \le 10^3,1 \le b \le 10^3,1 \le T \le 10^3\)。

题解

如果我们选择了两个电池 \(u,v\),我们就在他们之间连一条无向边。
每一个方案对应一个无向图。
如果这个方案不可行,就意味着每一条边的两个端点都至少有一个没电的点,也即有电的点之间没有边。
所以方案不可行等价于这个图的最大独立集 \(\ge a\)。

于是我们可以 dp,设 \(f_{i,j}\) 表示 \(i\) 个点的图,最大独立集为 \(j\),的最少边数。
边界:\(f_{i,i}=0,f_{i,1}=C_i^2\)。
转移:如果 \(j>1\),那么为了让边数最少,此时的图一定不连通,枚举其中一部分,\(f_{x,y}+f_{i-x,j-y} \to f_{i,j}\)。
答案:\(f_{a+b,a-1}\)。
这个 dp 是 \(O(n^4)\)。

然后你打个表可以发现最优的情况一定是:\(x=\lfloor \frac{i}{j} \rfloor,y=1\)。
所以就优化成了 \(O(n^2)\)。

T2 Ancestors

题面

给你一棵树,\(q\) 次询问 \(l,r,x\),求有多少个点 \(u \in [1,n]\) 满足 \(u\) 是 \([l,r]\) 中其中一个点的 \(x\) 级祖先。
如果 \(u\) 不存在 \(x\) 级祖先,那他的 \(x\) 级祖先是 \(0\)。
数据范围: \(1\le l,r,x \le n \le 10^5,1\le q \le 10^6\)。

题解

我们肯定是统一处理 \(x\) 相同的询问。

设 \(f_{i}\) 表示目前 \(i\) 的 \(x\) 级祖先。
如果我们能求出 \(f_{i}\),那么原问题就是一个区间数颜色,常见的作法是:
维护一个 \(pre_{i}\),表示最大的满足 \(f_j=f_i\) 且 \(j<i\) 的 \(j\),不存在的话 \(pre_i=0\)。
然后一个点 \(u\) 要对询问 \(l,r,x\) 产生贡献就是满足:\(l\le u \le r\) 且 \(pre_u < l\)。
对 \(pre_u\) 这一维扫描线,这样询问就只需要在树状数组上区间查询即可。
就是一个经典的二维偏序。

这个做法的好处是只需要维护 \(pre\) 数组就可以了。

因为题面规定了 \(x\) 级祖先为 \(0\) 的点不产生贡献,所以会互相影响的点一定在同一个深度。
如果我们把 \(x\) 级祖先相同的点放在一个集合,那么当 \(x\) 增大 \(1\) 就相当于要合并若干个集合。
容易证明将一个点插入一个集合只会最多修改两个点的 \(pre\),那么我们在合并的时候采用启发式合并就能做到只有 \(O(n\log n)\) 次修改。

处理出这些修改可以先长剖(因为每个点的子树对不同的深度都要维护一个集合),然后合并轻子树的时候采用启发式合并就可以了,用 set 维护就是两个 \(\log\)。

现在只需要维护:\(O(n\log n)\) 次单点修改的动态二维偏序。
就等价于三维偏序,时间复杂度是三个 \(\log\)。

貌似是有两个 \(\log\) 的做法的,但是三个 \(\log\) 可过。
因为我没有写过,所以不知道要不要卡常,但是场上确实一车人跑步过去了

标签:pre,10,le,log,题解,2025,PKUWC,电池
From: https://www.cnblogs.com/FloatingLife/p/18679806

相关文章

  • 2025年全面推广数电票,这些常识你必须知道!
    数电票(全称:数字化电子发票)是中国税务部门推广的一种新型电子发票形式,旨在通过数字化手段提升发票管理的效率和透明度。数电票是增值税发票的一种,完全以电子形式存在,不再需要纸质打印,具有高效、环保、便捷等特点。1.数电票的背景随着信息技术的快速发展,传统的纸质发票逐渐暴......
  • 2025毕设springboot 基于web的家教管理系统论文+源码
    系统程序文件列表开题报告内容研究背景在当今社会,随着教育需求的多元化和个性化发展,家教服务逐渐成为众多家庭补充学校教育、提升孩子学习成绩的重要途径。然而,传统的家教市场存在信息不对称、管理不规范、服务质量参差不齐等问题,给家长和家教老师带来了诸多不便。随着互联......
  • 2025毕设springboot 基于Web的多功能游戏平台设计与实现论文+源码
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和普及,网络游戏已成为人们休闲娱乐的重要方式之一。传统的游戏平台大多局限于单一的游戏类型或服务商,无法满足用户多样化的游戏需求。与此同时,随着Web技术的不断进步,基于Web的游戏平台凭借其跨平台、易访问、......
  • 2025 #1 我依然怕先行者放弃了导航 奉献者悔恨起坚守过信条
    T1.P4262[Code+#3]白金元首与莫斯科\(n\timesm\)的棋盘上有一些障碍格,对于每一个非障碍格,需要求出若该格为障碍格,用\(1\times2\)的砖铺满棋盘的方案数。其中\(1\len,m\le17\)。看到这一种比较抽象的网格上的题目,可以考虑使用插头dp来解决。对于一个\(1\ti......
  • 2025四款好用的电脑桌面日程清单软件推荐
    进入2025年,很多打工人都想要在职场更进一步,提高工作效率,而使用一款电脑桌面日程清单软件,可以帮助我们轻松管理工作日程,让每天的工作任务井井有条。今天给大家推荐4款简单好用的Win电脑桌面日程清单软件。一、微软todo微软自带的待办清单工具,旨在帮助用户规划和组织日常任务、事......
  • [2025.1.19 JavaSE学习]网络编程-2(netstat指令 && TCP补充)
    netstatnetstat-an:可以查看当前主机网络情况,包括端口监听情况和网络连接情况netstat-an|more:可以分页显示在dos控制台执行Listening表示某个端口在监听如果有一个外部程序(客户端)连接到该端口,就会显示一条连接信息PS:netstat-anb,可以发现,8888端口号在上一节程序运行......
  • 【Typora】2025最新Typora安装下载与破解免费使用保姆级图文教程
    本文目录一、下载Typora二、安装Typora三、使用Typora一、下载Typorahttps://www.typoraio.cn/首先我们去Typroa的官网下载Typora。这里可以使用中文站,不会太卡。二、安装Typora选定好自己的路径进行下载,这里推荐D盘进行下载。然后创建一个桌面版图标,方便下......
  • .NET周刊【1月第1期 2025-01-05】
    国内文章3款.NET开源、功能强大的通讯调试工具,效率提升利器!https://www.cnblogs.com/Can-daydayup/p/18631410本文介绍了三款功能强大的.NET开源通讯调试工具,旨在提高调试效率。这些工具包括LLCOM,提供串口调试和自动化处理功能;Wu.CommTool,支持ModbusRTU和MQTT调试,界面丰富;以及......
  • 2025dsfz集训Day7: KMP与Trie树
    Day7:KMP与Trie树KMP算法\(KMP(Knuth–Morris–Pratt)\)是一个字符串匹配算法,于1977年由上述三人共同发表。在线性的时空复杂度内解决字符串匹配。字符串匹配给定两个字符串\(s,t\)(通常来讲我们管较短的串叫做“模式串”,长的叫“匹配串”。我们的任务是在长串内找到......
  • 【做题记录】2025刷题计划--线段树
    A.「SDOI2014」旅行给每个宗教开一棵线段树,树剖\(+\)线段树单点修改区间查询即可。Code#include<bits/stdc++.h>#definelllonglong#defineilinline#defineread(x){\ charch;\ intfu=1;\ while(!isdigit(ch=getchar()))\ fu-=(ch=='-')<<1;\ x=ch&1......