首页 > 其他分享 >WC2024

WC2024

时间:2024-02-07 22:44:24浏览次数:27  
标签:rs WC2024 ls 端点 2L mathcal gets

最简单的一届 WC。

P10143 [WC2024] 代码堵塞

难度:1

拆贡献,考虑 \(i\) 选 \(0\) 还是 \(1\):

  • 如果 \(i\) 选 \(0\),那么它前面选 \(0\) 的加上它不超过 \(T\)。
  • 如果 \(i\) 选 \(1\),那么它后面选 \(0\) 的加上它和它前面的所有数不超过 \(T\)。

随便背包可以做到 \(\mathcal{O}(nT)\)。

P10144 [WC/CTS2024] 水镜

难度(算法一):4

难度(算法二):5

先考虑如何在 \(L\) 确定的时候如何判断合法,以下默认 \(h_i\neq h_{i+1}\)。

注意到 \(h_i\) 的两个取值必有一个不小于 \(L\),且另一个不大于 \(L\)。我们不妨设 \(a_i=\min(h_i,2L-h_i)\),那么必然是一个前缀取 \(a_i\),一个后缀取 \(2L-h_i\)。则合法当且仅当 \(a_i\) 单峰,即 \(a_1<\cdots a_{k-1}<a_k>a_{k+1}>\cdots >a_n\)。

我们只关心相邻两个位置的大小关系,而两条折线 \(a_i=\min(h_i,2L-h_i),a_{i+1}=\min(h_{i+1},2L-h_{i+1})\) 的交点只有一个,所以相邻数的大小关系将 \(L\) 切分成 \(n\) 个本质不同的段。

算法一: 可以得到平方做法:将小于号看成 \(0\),大于号看成 \(1\)。我们的目标是对所有左端点 \(l\) 求出最远的右端点 \(f_l\)。每次找到所有 \(01\) 连续段 \([l,r]\),对所有 \(u\in[l,r]\) 执行 \(f_u\gets \max(f_u,r)\)。

考虑我们每次翻转一个 \(0/1\) 只会影响其周围的 \(\mathcal{O}(1)\) 个连续段,所以修改后对这些连续段单独 chkmax 即可,复杂度 \(\mathcal{O}(n\log n)\)。

有关 \(h_i\neq h_{i+1}\) 的情况,在中间插入 \(\infty\) 并钦定大小关系始终不变即可。

算法二: 可以将条件转化为不存在“谷”,即 \(a_{k-1}\leq a_k\geq a_{k+1}\) 的结构。讨论可以得到一个有关 \(L\) 的范围的限制,判断范围非空即可。利用带删双指针(类似双栈模拟队列)可以做到 \(\mathcal{O}(n)\)。

P10145 [WC/CTS2024] 线段树

难度:7

似乎是复制粘贴,所以大家看原文就好了

考虑怎么判断合法。将原问题抽象成图论问题,一个区间 \([l,r)\) 已知看做 \(l\) 和 \(r\) 连一条双向边,则 \([L,R)\) 能被唯一确定当且仅当 \(L\) 和 \(R\) 联通。证明即考虑已知区间 \([l,r)\) 相当于知道 \(S_r-S_l\) 的值,其中 \(S_x\) 为 \([0,x)\) 的和。这样构建出来的图是平面图,边不会交叉。

设计 DP 状态 \(g(u)\) 表示节点 \(u\) 的左端点和右端点联通,\(f(u,i)\) 表示 \(u\) 的左端点最远能到达的结点为 \(i\),转移方程:

  • \(g(u)\gets 2g(ls)g(rs)\)。
  • \(g(u)\gets f(ls,x)g(rs),f(u,x)\gets f(ls,x)g(rs)\)。
  • \(g(u)\gets g(ls)f(rs,y),f(u,y)\gets g(ls)f(rs,y)\)。
  • \(g(u)\gets f(ls,x)f(rs,y),f(ls,x)\gets f(ls,x)f(rs,y)\)。

第四类转移需要注意 \((x,y]\) 区间内的所有点都不与区间外的点联通,所以所有区间的两个端点要么在 \((x,y]\) 内部,要么都在 \((x,y]\) 外部。换句话来说,包含 \(x,y\) 的区间集相等。xor-hashing 刻画。

那么 \(f(u,i)\) 表示最远点的等价类为 \(i\),线段树合并维护,复杂度 \(\mathcal{O}(n\log n)\)。

https://www.luogu.com.cn/record/146497898

标签:rs,WC2024,ls,端点,2L,mathcal,gets
From: https://www.cnblogs.com/yllcm/p/18011429

相关文章

  • WC2024 游记
    WC2024游记Day0&Day1见参考资料[1]。Day2今天是,上午题目选讲,下午讲量子计算。上午的东西不怎么感兴趣,摆摆摆。下午的东西感觉是有点意思的,听听听。可是有点不符合预期啊,前半部分讲了一堆没什么意义的科普,后半部分讲的量子算法又掉线了。那没办法了,摆摆摆。还是不能......
  • WC2024 水镜
    考虑一张图,如下建边:\(h_i<h_{i+1}\):\((i,0)\to(i+1,0)\)\(h_i>h_{i+1}\):\((i,1)\to(i+1,1)\)\(h_i+h_{i+1}<L\):\((i,0)\to(i+1,1)\)\(h_i+h_{i+1}>L\):\((i,1)\to(i+1,0)\)所以说边只会改变\(n\)次,一共\(2n\)条边。对于每张图需要求出\(......
  • PKUWC2024游记
    省流:136+136Day-?模拟赛。一直犯唐氏错误,但赋值写成加能过样例是怎么回事呢。SNOID1T3用dinic跑不过去必须用二分图边染色又是怎么想到的(Kubic:二分图匹配总不会卡dinic)。GDKOID2T3使用分治和vector套vector又被卡了45pts,rp-=inf。Day-1看了一圈拉丁方题解,好像有用神秘分治......
  • WC2024 水镜
    洛谷传送门WC2024被打爆了,呜呜。我赛时会这题\(8\)分指数级暴力,哈哈。真不知道自己在干嘛。下文令\(T=2L\)。考虑如何判定一个序列\(a\)是否合法。考虑先枚举一个\(T\)。因为要求\(r_i<r_{i+1}\),考虑讨论相邻两项的取值:若\(a_i<a_{i+1}\)则\(r_i=a_i,......
  • WC2024 游记
    2月1日测试开场读三道题,题好长!T1看起来是数数,T2是神秘构造,T3还是数数。开赛后15分钟开始想T1。直接做好像不太可做啊,然后立刻想到了拆贡献看看。发现拆贡献后问题变成了背包问题,可以\(\mathcalO(nT)\)解决。看完数据范围有点惊讶,我的做法能拿满分!在去年,金牌分数线不......
  • THUWC2024 游记
    标题已经过和谐。内容已经过和谐。Day0等待cool_milo。他来了。检查身份证和现金。思来想去决定携带红楼梦,然而并没有什么用。走到一中后门,等待教练打印准考证。打印好了,绕远路前往小龙坎站乘坐一号线。形如初中生秋游。经过换乘抵达黄花园,出站看见巴蜀中学国际部,非常气......
  • pkuwc2024 & wc2024
    虽然去年pkusc拿过优异了,但是还是去旅游了一下。不想按照严格的时间线写了,想到什么写什么吧。坐高铁去,发现zph和miao22也在这一车次,但是和被8-9分割了。CQ的地铁感觉没有几段是在地下的,全是在天上跑,还有从楼里穿过的,还是比传统地铁好玩的。但下来就不好玩了,拎着箱子......
  • THUWC2024游寄
    THUWC2024游寄\(day\-1\)从学校坐车到巴蜀,第一次参加这种全国赛就碰上了在自己省举办,不能去外省玩,伤心,几百年没出过省了,不过如果去外省的费用堪忧,节省路费和食宿费了,发现巴蜀的大门居然是开放的,震惊,这样学生不是可以随意进出了???发现大门旁边还有一个银行和很多的饭店,更震惊了!这......
  • WC2024 Lectures
    大概只会有例题题解。目录P8263「YnoiEasyRound2020」TEST_8P8263「YnoiEasyRound2020」TEST_8Tag:S-持久化WBLT。使用WBLT来维护整个括号序列,则三四操作已经做完了。考虑一二操作,使用倍增的方式处理出复制\([l,r]\)区间的结果,于是可以在\(O(\logk)\)的复杂度内......
  • THUWC2024 游记
    前言S爆炸,去不了WC,呜呜呜。好在混给了个THUWC的名额,那还是去玩玩吧。day0t营小分队:我,@柳易辰,@tianhangj坑老师重回战场!其他高二的神仙都有约了。10点的飞机,川航。想买机上wifi,家长不让/fn/fn/fn飞机餐差评。下飞机打车直奔霸树。一进去就看见了zxx!但是我社恐......