记一场 ABC364

赛时 AC ABCD,赛后补出了 E。
由于比赛在一个月前,本来已经忘记这场比赛了,直到我看到了:

(来自一位超厉害的小学同学神犇)
364 364 364?很近的比赛啊,我打过吗?似乎打过?
打开题目一看:这不就是斯坦纳树板题吗?但我为什么没印象?
打开 AT 一看,额,我还真打过:

菜爆了。。。也难怪对 G 没印象。
重新看一下题,发现还挺好玩,遂把 F、G 题干掉了。

作为第二场 AK 的比赛(第一场是 ABC126,但是太简单了),决定写篇总结。


以下 5 5 5 题是比赛当天做的。

[ABC364A] Glutton Takahashi

只要判断是否有 2 2 2 个连续的 sweet
笑点解析:赛时吃了一发罚时,数组下标写错了。
过此题时比赛已经过去了 6 6 6 分钟。

[ABC364B] Grid Walk

按题意模拟。
过此题时比赛已经过去了 11 11 11 分钟。

[ABC364C] Minimum Glutton

贪心。
想要停止吃饭,甜度限制和咸度限制只需要超过一个就可以了。所以可以分别按甜度和咸度从大到小排序,看哪种策略先结束。
过此题时比赛已经过去了 16 16 16 分钟。

[ABC364D] K-th Nearest

二分套二分,需要思维转换。
与直接其求距离给定点第 k k k 近的点是哪个,不如直接求这个距离。设给定点坐标为 x x x,二分这个距离(记为 b b b),看在 [ x − b , x + b ] [x-b,x+b] [xb,x+b] 的范围内有几个点。区间查询使用线段树,由于值域范围过大,动态开点。
然而刚才看题解区发现全是二分套二分……二分距离后,二分距离 x − b , x + b x-b,x+b xb,x+b 最近的点,判断中间的点的数量。
赛后为了涨咕值写了篇题解。
过此题时比赛已经过去了 57 57 57 分钟。

[ABC364E] Maximum Glutton

注意看这个 Maximum,和前文的 minimum 形成了鲜明的对比,设置悬念,吸引读者的阅读兴趣,引发读者的思考,前后呼应,提示我们二者有相同也有不同。
由于要吃尽量多的东西,就要求两个参数都不能超过限制,此时一道菜的两个参数都会对当前情况的优劣产生影响,所以贪心会比较难绷。
于是使用 DP。
然后一看数据范围:
n ≤ 80 , x , y ≤ 1 0 4 n \le 80,x,y \le 10^4 n80,x,y104
空间去掉 n n n 那维还勉强是 x × y = 1 0 8 x \times y=10^8 x×y=108 刚刚好,时间就这 O ( n x y ) = 8 × 1 0 9 O(nxy)=8 \times 10^9 O(nxy)=8×109,根本不带超时的好吧!
赛时吃了 2 2 2 发罚时(未 AC),win!


赛后 20 20 20 min 看题解。

Instead, noticing that the value of N N N is fairly smaller than those of X X X and Y Y Y in this problem, we take the following typical approach:
Swapping the key and value of DP.
Specifically, bring the number of dishes to the key and total saltiness to the value to define:

  • d p i , j , k = dp_{i,j,k}= dpi,j,k= (the minimum total saltiness when choosing exactly k k k dishes from dishes 1 , 2 , … , i 1,2,\dots,i 1,2,,i so that the total sweetness is exactly j j j).

This way, the DP table can be filled in a total of O ( N 2 X ) O(N ^2X) O(N2X) time.
All that left is to find the maximum k k k such that there exists j j j with d p N , j , k ≤ Y dp_{N,j,k}\le Y dpN,j,kY.

沃德???那么妙又那么帅的吗?我居然没想到,是自己太菜了……还不是因为自己不够努力。。。
常用 DP trick + 1 +1 +1
于是开始补题。一开始填表法过不去,用了刷表法才过。
此时已经 22 : 18 22:18 22:18 了。


以下 2 2 2 题是 2024.8.27 2024.8.27 2024.8.27 才做的。

[ABC364F]Range Connect MST

好玩,kruskal 与并查集小技巧 + 1 +1 +1
按照 kruskal 的步骤去做,但是发现不能暴力判断一条边的两个点是否连通。但由于一个区间的所有点都连向一个点,所以 [ l i , r i ] [l_i,r_i] [li,ri] 有几个连通块就会连几条边。暴力处理每个连通块,把前面的合并到后面。
哦,想起来了,赛时看过几眼。

[ABC364G]Last Major City

一眼得斯坦纳树。
先考虑只有 k − 1 k-1 k1 个关键点,直接复制板题代码即可。对于每一个询问,输出 f i , S f_{i,S} fi,S 即可,因为当第 i i i 个点被连通时,可以把它当做又一个关键点。

总结

好比赛,好题。
希望可以多出点这样的比赛,不要像某些比赛只会出三维前缀和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值