ABC 335 VP 总结

前言

ABCDE + 口胡 F + 口胡 G 假做法,三分之一伪 AK(?

正文

A

B

C

D

构造一个环形递增矩阵即可。

E

考虑何时才有一个非降序列。

valx 为点 x 的权值。

对于一个相邻的点对 (u,v),可以分成三种情况:

  • valu>valv

此时只有 vu 的可能,vu 连边。

  • valu<valv

类似上一种情况,uv 连边。

  • valu=valv

此时无论是经过 u 还是经过 v 或是 u,v 两点都经过,它们的贡献都一样,将 u,v 缩成一个点即可。

不会吧不会吧不会有人这种缩点用 tarjan 吧???

对不起,我紫菜。

你怎么知道我 tarjan 缩点然后调 30 min 弘文了?

并查集维护缩点操作。缩点后跑 DAG 上最长路即可。toposort 可以胜任。

注意是在缩点之后重新编号连边。

时间复杂度 O(nα(n)+m)

F

首先设 dpi 为到第 i 格的填色方案。

你会想到一个 naive 的向后转移:

dpidpi+k×ai

时间复杂度 O(nnV)

有另一个 naive 的转移,是去考虑 dpi 从前面的何处转移而来的。

显然 dpjdpi 的条件是 j+k×aj=i,转换得:ij(modaj)

维护 DPi,j 表示模 i 位置为 j 的方案总和,那么有:

dpi=j=1VDPj,imodj

DP 有懒转移:

dpiDPai,imodai

时间复杂度 O(nV)

此时两个转移的复杂度跟 V 相关并且两种状态完全一致,不妨考虑对转移过程根号分治。

钦定阈值 V=maxi[1,n]{ai},若 ai>V 则用第一种方式转移,反之用第二种方式转移。

时间复杂度 O(nmaxi[1,n]{ai})

G

想到了一个正确概率很大的东西但是会被构造数据卡掉的方法,丢人,不说了。

总结

打得算好的,因为 ABCD 没什么分讨不容易写挂算是有点运气成分,E 想 + 调了接近 65 min,F 口胡出来了但是某些细节还是没注意,G 是数学确实不会做,确实是纯菜了。

后面还是得注重训练码力和刻意记住某些经典的 trick,因为某些题目的关键点就可能是某个 trick 的延申。

posted @   end_switch  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示