中山集训 day 1 day 3 模拟赛补题

Round 1 A

模拟即可。
赛场上的写法我自认为写的挺好的。把所有的 in 替换成 out ans 可以得到的所有串预处理出来,然后和其他原来的串判一下相等即可。

Round 1 B

很容易写错的题目。需要意识到 dp{}=x,如果 x 的值更小的话,可以考虑将本来设为 dp 状态的四元组中的某一维用来 dp,然后将原来 dp 的目标函数和状态互换,这样可以降低复杂度。

dpm,h,p,g 表示已经进行了 m 个回合,(除了产品外的)三个元素分别为 h,p,g,产品最大值。

但是我们发现 |p|104,即 |p|105,如果放在 dp 状态里会占用掉大量时空,而目标函数 |e|10|e|100,更适合设为状态。

所以令 dpm,h,g,e 表示已经进行了 m 个回合,(除了 p 外的)三个元素分别为 h,g,e,产品最大值(或报告无解)

然后这个东西需要用滚动数组滚动掉 m 一维,就做完了。

Round 1 C

考虑这个式子的意义。假设只有两个数的话且这两个数互素的话,也就是 ax+by=1,这个东西显然是有解的。

因为其等价于 axmody=1a 是否有解。在 x,y 互质的情况下一定有解。

考虑 x,y 不互质怎么办,令 l=gcd(x,y),则 xl,yl 互质。

也就演变成了上面那种状态,所以所有 l 的倍数就可以凑出来。

总结普适性,所有 gcdai 的倍数项都是可以凑出来的。

所以也就是一个区间 gcd 问题。pushup 部分可以直接维护。

Round 1 D

原来的这些站点都无意义,你对于每个线路上的每个站点都建一个点。
然后对于 (i,ui,j),(i,ui,j+1),代价是距离。

然后 (v,(i,ui,j+1)),代价是距离是 vui,j+1 的距离。下车则是建立 ((i,ui,j),v),大家是 v 愉悦度的相反数。

然后跑 johnson。

Round 2 A

i=1ni

对于 i,它作为 x 的区间 x 满足 i2x<(i+1)2,这里一共有 (2i+1) 个数。

然后 也就是说这个式子可以转化到

i=1ni(2i+1)

用等差数列求和公式和平方和公式就可以了。

考虑个边界条件就可以了

Round 2 B

二分一下。也就是中位数之前的 q12 个要求最小代价,后面的也要求最小代价,问题转化成前缀后缀前 k 大和问题。

然后你拿主席树维护这个东西就可以了。时间复杂度是大常数的 O(nlog2n)

但是我们的问询区间要么左端点是 1,要么右端点是 n,然后这个东西可以用权值线段树 权值树状数组之类的以更小的常熟解决。

也可以用几个 set 之间的容器关系更进一步到 O(nlogn)

Round 2 D

考虑这个东西的答案随机情况下很小,所以我们每次从 L 开始扫,扫到 maxmin 大于区间长度了就将区间长度并到 maxmin 上,然后做二位数点。

hack 是 123n,但是你可以开后门。

posted @   wtcqwq  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示