Loading

VP 记录

前言#

从 2023.10.27 开始,每天 VP 一场 ABC / ARC / Div2 / Div1。要补题并写总结。

持续更新 ing...

2023.10.27 - ABC255#

第一天先开一场 ABC 试试水。

A 题手速题,1 分 08 秒过,还是慢了点。

B 题被翻译诈骗了,还想了一手二分,但看到 n1000 直接枚举。不过为什么 B 题会出一道不是计算几何的计算几何。5 分 26 秒过题。

C 题也被翻译诈骗,翻译把第一个条件翻译成了:将 1 加到 X。看了一手样例才发现是让 XX+1。那么首先将大于最大值和小于最小值判掉,再二分找到等差数列中最接近 X 的两个数即可。不过二分要分 D>0,D=0,D<0 三种情况分类讨论,还有一些特判。吃了一发罚时。15 分 43 秒过。

D 题一开始看错题了,以为是每个数都要变成 Xi 中的一个,花了五分钟写了一个 set 后才发现看错题了。原题是 Q 个询问,那么直接将询问离线按 Xi 排序,A 也排一遍序,双指针求出当前小于 X 的数的和 s1,大于等于 X 的数的和 s2,小于 X 的个数 m,用 s1mX+(nm)Xs2 更新答案。29 分 19 秒过题。

E 题是简单题,只要确定了 A1 就可以确定 A 的整个序列,设 A1=a,那么容易推出 Ai=di±a,其中 di 可以递推出来,即 di=si1di1,而 d1=0,当 i 是奇数时取正号,否则取负号。那么我们只需要枚举 Ai 等于 X 中的哪一个,用 map 维护此时对应的 a 的出现次数。最后的答案就是 map 中的最大值。39 分 50 秒过。

F 也是简单题,我们在 l 中可以直接找到一个点的子树对应的区间,用 p 可以找到一个点的两个子节点,递归处理即可。56 分 07 秒过题。

G 题是博弈论,不会,直接跳了。

H 一看就是 ODT,我在每个节点上维护当前的值,每个时间段暴力更新所有区间,如果数据水时间复杂度期望是对的,但 T 了 4 个点。赛后发现可以直接维护最后一次被清空的时间,这样时间复杂度就是对的 O(qlogq) 了,只需要改一点点就可以。

最后 VP 榜上 rk 19,映射回原排名 rk 143,表现分 2335。(居然这么高,超常发挥了)

继续保持,不要降智。

不过 H 没切还是很可惜的,ODT 调久了。

2023.10.28 - ABC256#

继续 ABC。

A 题手速明显加快,0 分 29 秒过题。

B 题翻译不知道翻译了个什么鬼,花了好几分钟才看懂题,4 分 47 秒过题。

C 题是一个答辩爆搜,check 复制六遍就可以了,12 分 03 秒过。

D 题是简单题,做一个差分再扫一遍就可以了,15 分 50 秒过。

E 题也是简单题,从 iXi 连边,跑一遍拓扑排序,不在环上的点贡献为 0,在环上的点贡献环上的最小值。24 分 23 秒过。

发现 F 和 H 都是数据结构,脑抽了,先写的 H,花了 20 分钟糊了一个 H 的 ODT,但寄了,回去看 F。

F 很快就出做法了,用线段树维护 C,支持区间加等差数列,区间求和,就可以直接做了。对每个线段树节点维护两个标记 k,b,将等差数列当作一次函数,两个一次函数可以直接合并,也就是 k,b 直接相加。求和可以直接用等差数列求和公式。写起来也不难。但因为有几个地方没取模被创飞了,吃了六发罚时。94 分 07 秒才过。

最后 VP 榜 rk 45,原排名 384,表现分 1963。

不要好高骛远!!

2023.10.30 - ABC263#

星期天放假,摆了一天。实力显著下降,降智严重。

还是 ABC。

A 题手速题写了 1 分 30 秒。

B 题也是手速题,3 分 09 秒。

C 题还是手速题,4 分 53 秒。

D 题被创飞了,换了两种写法,感觉都挺对的,但错了,吃了两发罚时。25 分 39 秒过,成小丑了属于是。

E 题是简单题,设 fi 表示从 in 的期望步数,那么有:fi=1+1ai+1j=ii+aifj,左右都有 fi,那么化一下式子:fi=ai+1ai+1aij=i+1i+aifj,再用前缀和优化一下就可以了,34 分 18 秒过。

F 题先想了一个看起来挺对的贪心:建一颗查询最值的线段树,分治做,每次查询该层的最大值,计入答案,再将这次的子树按照最大值所在的链裂成若干个小子树,时间复杂度应该是 O(n22n) 的,但很遗憾错了。然后一直在想 DP 怎么 D,到最后也没 D 出来,怎么回事呢?

最后 VP 榜 rk 44(居然进步了),原排名 384 (居然一样!),表现分 1926。(为什么前面的两个都不降,而这个下降了)

D 题被创了,怎么回事?

F 切不出来了,怎么回事?

2023.10.31 - ABC264#

没几次 ABC 了。

A 题常规手速题,但手速不怎么样,1 分 02 秒过。

B 题少有的有点意思,根据 (x,y) 到中心的距离的最小值的奇偶性来判断,也就是 min(|x8|,|y8|)mod2 的值,若为 1 则是黑色。4 分 10 秒过。

C 题又是 ABC 传统模拟,先跳了。

D 题手速题,将大小关系存到 map 里,然后直接冒泡排序求逆序对就可以了,因为 atcoder 没有重复字符。

E 题是简单题,将询问离线倒着扫,将断边变成加边,用一个并查集维护就可以了,合并需要特别关注,对每个集合维护 sizvis,分别表示:集合中城市的个数,该集合中是否有电厂,这样就行了。但因为没看数据范围 RE 了一发,还有一个伞兵错误又 WA 了一发,罚了两发才过。17 分 48 秒过。

回去写 C 题,直接 210×210 枚举哪些行不选,哪些列不选就行了,常数极小(因为有很多剪枝)。24 分 03 秒过。

F 题是一个不是很简单的 DP,刚开始想的是设 fi,j 表示从上方走到 (i,j) 的最小值,gi,j 表示从左方走到 (i,j) 的最小值,然后按照左方和上方连续 1 的个数来转移,但假了。之后才想到设 fi,j,x,y,x,y{0,1} 表示到达 (i,j),第 i 行是否反转,第 j 列是否反转的最小值。那么所求就是 min(fn,m,0/1,0/1),有初值 f1,1,0,0=0,f1,1,1,0=R1,f1,1,0,1=C1,f1,1,1,1=R1+C1。转移也比较简单:

{fi+1,j,0,yfi,j,x,yai,jxy=ai+1,jyfi+1,j,1,yfi,j,x,y+Ri+1ai,jxyai+1,jyfi,j+1,x,0fi,j,x,yai,jxy=ai,j+1xfi,j+1,x,1fi,j,x,y+Cj+1ai,jxyai,j+1x

最后 61 分 38 秒过了。

VP 榜 rk 24,原排名 263,表现分 2120。

还可以吧,但注意罚时。

作者:TKXZ133

出处:https://www.cnblogs.com/TKXZ133/p/17793237.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   TKXZ133  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示