首页 > 其他分享 >WC2023 解题报告

WC2023 解题报告

时间:2023-01-20 13:44:26浏览次数:49  
标签:01 报告 dep 最大值 大值 链头 解题 位置 WC2023

WC2023 解题报告

stairs

考虑阶梯的右下折线,称竖线为 0,横线为 1,从上到下形成一个 01 序列。
原题要求的子楼梯边界格数转化成 01 序列里靠前的 0 和靠后的 1 的位置差。

我们将 01 序列从 0 开始标号,那么最后一个位置是 \(p\)。
由于保证了查询的 \(q|p\),我们标记所有形如 \(kq,k\geq 0\) 的位置。
由于位置 0 的值为 0,位置 \(p\) 的值为 1,所有标记的位置一定会出现一对相邻的 01,即有解。

如果得到了 01 序列,容易通过二分出中间的标记点判断递归左右。

而修改操作对于 01 序列的改动形如:

  1. 添加一整段 1。
  2. 添加一段 \(k\) 个 1 后,在末尾截取掉一段包含 \(k\) 个 1 的段。

使用平衡树维护。由于只撤销添加一整段 1 的操作,较好处理。

总复杂度 \(O(m\log^2 m)\)。

contest

鱼大做法太阴间了。笔者认为相较于更阳间的做法是 dls 调整法。

一些贪心和随机化做法在此题中也拿到了超高分,例如 hzr 的随机化拿到了 92pts,xzy 贪心拿到了 72pts。

ds

叙述一个 txx 的 \(O(n\log n)\) 做法。

我们考虑对于一个点 \(x\) 将其到根的路径上的边权换成一个连续区间 \([1,dep_x]\)。
具体操作考虑执行:

for(i=1;;i++){
    if(query(x)==i)break;
    exchange(i,query(x));
    if(query(x)==i)break;
}

不妨记这段值域区间为 \([1,w]\),我们不断选取下一个点 \(x\),如法炮制,可以将树剖分成若干条链,且我们知道链上的值域是连续的和链上的点集。这部分操作复杂度是 \(O(n)\) 的。

我们考虑将每条链上的边权按深度升序排列以得到每个点的具体在链上的位置和对应的边权。
一个 \(O(n\log n)\) 的做法是考虑快排的思想,仍然像上述链剖分的做法一般随机选取一个点集内的 \(x\),不断做替换操作,之后询问可以将点集、权值分成两部分。

唯一剩下的问题是如何找到链头的父亲,也就是链头父亲目前对应的权值。
由于我们对链做好了排序,此时链头的权值是链头到根路径上的最大值,且链头父亲对应的权值是次大值。
我们想要求得次大值的话,一个简单的想法是考虑把最大值换成一个比次大值小的值,这样就能查出次大值了。

我们考虑一个最深的点 \(u\),满足 \([1,dep_u]\) 以此分布在 \(u\) 到根的路径上。(这个 \(u\) 显然是值域最小的若干条链拼成的最后一个点。)

那么我们考虑能把最大值换成比次大值小的方法失效当且仅当这个链头接在 \(1\rightarrow u\) 的链上。
对于方法有效的情况,我们使用 \(dep_u\) 进行替换可以查询出次大值。
而方法失效的情况下,我们使用 \(dep_u\) 替换后查询出的值为 \(dep_u\),我们考虑在 \(1\to u\) 的链上二分出链头挂载的位置。具体方法是挂载位置即更浅的边换过来最大值不变,而更深的边换过来最大值即改为这条更深的边。

那么我们得到了这个 \(O(n\log n)\) 的做法。具体来说它在考场上 txx 的实现中拿到了 76pts 的全场最高分。

标签:01,报告,dep,最大值,大值,链头,解题,位置,WC2023
From: https://www.cnblogs.com/juju527/p/17062704.html

相关文章

  • 「解题报告」ARC141E Sliding Edge on Torus
    这题为啥能上3000,我这种废物都能一眼看出来做法...首先发现可以将点根据\(x-y\)的值分成\(n\)组,第\(x\)组的第\(i\)个点为\((i,i+x)\),这样每次连边的时候......
  • 第五十章 使用 ^SystemPerformance 监视性能 - Microsoft Windows 平台的 InterSystem
    第五十章使用^SystemPerformance监视性能-MicrosoftWindows平台的InterSystemsIRIS性能数据报告MicrosoftWindows平台的IRIS性能数据报告%SS-使用ALL......
  • Google Jeff Dean 2022年终报告,大模型、AI 绘画神器
    GoogleJeffDean2022年终报告,大模型、AI绘画神器2022年,谷歌在ML领域取得了哪些新进展?JeffDean发万字长文总结。2022年,谷歌在机器学习方面有什么进展?GoogleResearch......
  • 「解题报告」ARC141D Non-divisible Set
    很有意思的题,我又没想到咋做。值域为\(2m\),我们要找出一个大小为\(m\)的好集合,我们可以先来分析这个好集合的大小的上界是多少。我们可以猜测一波上界就是\(m\)。可......
  • 洛谷P4983 忘情 题解报告
    题目地址题意:把正整数序列分隔为m个区间,若单个区间的元素之和为X,则其贡献为\((X+1)^2\)。求所有区间的贡献之和的最小值。分析:wqs二分+斜率优化dp。用单调队列发可......
  • 这是一份来自联想Filez的2022年终总结报告!请注意查收
    ......
  • CodeForces 构造题专项解题报告(二)
    CodeForces构造题专项解题报告(二)\(\newcommand\m\mathbf\)\(\newcommand\oper\operatorname\)\(\newcommand\txt\texttt\)\(\text{ByDaiRuiChen007}\)来源:CodeF......
  • WC2023 游记
    Day-3~Day0听课记录会补的。zxy/ll。Day1想着自己打了这么多年OI了,三块铜牌一块银牌,未免太搞笑了点,觉得这场必须拿金。开考好像卡了,等了很久才把题目下下来。......
  • WC2023游记
    真的是游记Day0开幕式。感觉很受震撼。就是成都七中现场的大屏幕太宽了结果宣传片里的人全成杆子(不过期待半天的变脸真的看到了/cyDay1~3上课,听不懂,摆烂,完全不补题......
  • WC2023 游记
    Day0开幕式,随便听了听,好像没啥好玩的。Day1早上的课先开了第一课堂,发现非常抽象,完全听不懂,于是润第二课堂学了ddp。习武坐车回老家,所以在车上用手机听,然而听一半车......