AtCoder Beginner Contest 190

这场的 E 题比 F 题的难度大 hh~。

我的 AC 代码:

https://atcoder.jp/contests/abc190/submissions?f.Task=&f.LanguageName=&f.Status=AC&f.User=HinanawiTenshi

A

如果 c=1 不妨交换先手,让第一个人糖果数 +1 减少情况。

B

按题意模拟即可。

C

范围很小,直接二进制枚举更新答案。

D

设一组满足的区间为 [l,r],那么有

(l+r)(rl+1)2=N

那么枚举 2N 的约数即可,复杂度 O(N)(注意到不可能出现 l+r=rl+1 的情况,不特判也行)。

E

首先因为关键点很少,所以可以用 bfs 处理出关键点之间的最短路 dis[u][v]

然后考虑 dpf[u][st] 表示 K 个点当前在 u 点,已经覆盖过的二进制状态为 st,进行转移即可。

注意记忆化搜索比较慢,可能会超时(亲测,挂了一发),建议采取递推写法。

F

初始序列 b=a,因为每次都相当于将序列 b 的首元素丢到最后,可以发现它对逆序对数的影响就是加上比它大的数的个数,减去比它小的元素个数。

那么我们一开始计算出序列的逆序对数 res,然后依次更新即可。

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