agc024 题解

link

code

A

对于差而言每次操作相当于交换,因此判断 k 奇偶性即可。

B

不变的部分是一个值域连续上升子序列,直接找即可。

C

从后向前,直接推推就可以得到对答案的贡献。

D

先考虑第一问,手模一下可以发现确定一个根之后所有深度相同的点是可以同构的。

因此第一问答案就是直径的一半。

第二问,确定根后相当于每一层取儿子个数最大值然后乘起来。

数据范围小,直接枚举根,注意根可以是一条边。

E

不是很难的小清新数数。

插入等价于选一个位置,向右平移,然后再原地放一个更大的数。

考虑把序列中的数看成一个集合,等价于选一个数,插入一个比他大的数。

如果已知最后集合中数的集合,怎么求方案数?

考虑从小到大加数,那么比当前数小的都本质相同,先预处理出 fi,j 表示 <x 的数有 i 个,xj 个的方案数,这个可以 O(n2) 的 dp 求。

fi,j=fi1,j+fi1,j1(ij+1)

然后直接放即可,令 gi,j 表示当前进行到 i,前面总共有 j 个数的方案。

gi,k=j=0kgi1,jfk,kj

时间复杂度 O(n2K),好像可以用卷积优化?

F

神秘的 dp 套 dp。

考虑对于一个数找他的所有子序列。

先建子序列自动机,然后每个子序列对应唯一了。

然后 dp,A 表示当前的子序列,B 表示还没有匹配的东西,注意到 |A|+|B|n,因此可以压在一起,再设一维把这两个隔开,最高位加一把 B 隔出来,然后转移即可。

复杂度 O(n2n)

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