agc024 题解
2023-04-18 15:50:22 时间
A (color{gray}igstar)
对于差而言每次操作相当于交换,因此判断 (k) 奇偶性即可。
B (color{gray}igstar)
不变的部分是一个值域连续上升子序列,直接找即可。
C (color{green}igstar)
从后向前,直接推推就可以得到对答案的贡献。
D (color{blue}igstar)
先考虑第一问,手模一下可以发现确定一个根之后所有深度相同的点是可以同构的。
因此第一问答案就是直径的一半。
第二问,确定根后相当于每一层取儿子个数最大值然后乘起来。
数据范围小,直接枚举根,注意根可以是一条边。
E (color{blue}igstar)
不是很难的小清新数数。
插入等价于选一个位置,向右平移,然后再原地放一个更大的数。
考虑把序列中的数看成一个集合,等价于选一个数,插入一个比他大的数。
如果已知最后集合中数的集合,怎么求方案数?
考虑从小到大加数,那么比当前数小的都本质相同,先预处理出 (f_{i,j}) 表示 (<x) 的数有 (i) 个,(x) 有 (j) 个的方案数,这个可以 (O(n^2)) 的 dp 求。
[f_{i,j}=f_{i-1,j}+f_{i-1,j-1}(i-j+1)
]
然后直接放即可,令 (g_{i,j}) 表示当前进行到 (i),前面总共有 (j) 个数的方案。
[g_{i,k}=sum_{j=0}^k g_{i-1,j}f_{k,k-j}
]
时间复杂度 (O(n^2K)),好像可以用卷积优化?
F (color{Gold}igstar)
神秘的 dp 套 dp。
考虑对于一个数找他的所有子序列。
先建子序列自动机,然后每个子序列对应唯一了。
然后 dp,(A) 表示当前的子序列,(B) 表示还没有匹配的东西,注意到 (|A|+|B|le n),因此可以压在一起,再设一维把这两个隔开,最高位加一把 (B) 隔出来,然后转移即可。
复杂度 (O(n2^n))。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击