agc020 题解

link

code

A

观察题,答案只和 AB 的奇偶性有关。

B

倒推即可,讨论一下比较简单。

C

考虑一个集合 S 和它的补集的和等于整个序列的和,也就是说所有子集和都在总和的一半的左右均匀排布,因此只需要求出 ai2 的最小的和即可。

这个可以直接背包,用 bitset 优化一下就可以做到 O(n2aiw)

D

首先连续段最小长度这个可以求,令 k=A+Bmin(A,B)+1

那么要让字典序最小,显然是前面贪心地放 kA,一个 B,这样循环,直到后面不合法,那只能停,然后后面一定是 kB,一个 A 这样放。

这个中间位置可以直接二分求。

注意网上很多都存在一个问题,如果二分中心在 (k+1) 的倍数位置上,后面的 B 的个数需要去减一,因为这个位置放 B,然后再在后面放,这个好像会出问题,但是我不太会 hack。

出成数数放模拟赛

E

神秘题。

一个简单的暴力是直接记忆化搜索,搞出当前的状态。

然后枚举最后一个字符并在的块的大小,然后暴力搜索。

复杂度不知道,但是发现每次分成两个部分后长度减半,感觉比较优秀,写个代码递推一下会发现大概是 2×107 左右,那就能过。

官方题解分析是 O(n3),比较问号。

F

啊这,感觉和招新一样啊。

套路地枚举每个数小数部分的大小关系,然后里面的东西就只需要考虑整数部分,状压 dp 一下,从左向右一个一个位置扫过去,看以这个点为左端点的区间是否加入,需要满足相邻两个区间有交即可。

有一些细节,要钦定一个区间放在最前面,断环成链,然后这个区间的小数部分要最小,以及这个区间长度要最长,这样最右边的区间不可能环回来后合法。

直接做复杂度 O(n!2n(nC)2),小卡常。

用招新的套路,只需要记录右端点最大的区间的区间的小数排名即可,这样复杂度去掉了 n!,乘上个 n

posted @   houzhiyuan  阅读(20)  评论(0编辑  收藏  举报
相关博文:
·  AGC020
·  AGC030
·  AGC011
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩