贪心、构造、DP、交互 合集(Part 2)

Problem A. CF704B Ant Man

题意:

n 个元素,第 i 个元素有五个参数 xi,ai,bi,ci,di

你需要求出一个 1n 的排列 p,满足 p1=s,pn=e,同时最小化这个排列的权值。

一个排列的权值为 i=1n1f(pi,pi+1),其中 f(i,j) 定义为:

  • i>j,则 f(i,j)=xixj+ci+bj
  • i<j,则 f(i,j)=xjxi+di+aj

2n5×103se1x1<x2<<xn1091ai,bi,ci,di109

解法:

这一类问题都可以描述如下:

你要求一个排列 p1,p2,,pn,最小 / 最大化 i=1n1f(pi,pi+1),其中 f(i,j)={f(i)+g(j)i<jh(i)+r(j)i>j

考虑到 f 的值与参数关系有关,考虑钦定顺序进行连续段 DP,记 fi,j 表示已经填入 [1,i],目前形成了 j 个连续段的答案。转移都是容易的,不过细节是插入 se 时有些转移是不合法的需要注意。

Submission Link.

Problem B. CF1835C Twin Clusters

题意:

给定 k 与一个长度为 2k+1 的整数序列,每个数 ai[0,4k)。求序列的两个非空不交子区间,异或和相等或确定无解。

0k17

解法:

性质很多,逐步挖掘。

首先,不交的限制绝大多数情况都没意义。如果找到两个相交子区间异或相等,当且仅当一个区间包含另一个且长度差为 1 时无法构造不交的区间。

其次,我们断言必然有解。考虑反证。根据上述结论,容易知道每种区间异或和出现次数不超过 2 次,否则有解。其次,考虑区间个数为 2k+1(2k+1+1)2>22k+22=22k+1=2×4k,每种异或结果不超过 2 个,故至少有 4k+1 个不同区间异或,与题意矛盾。

最后,根据生日悖论,每次随机一个区间并计算异或和,加入 map 维护即可。复杂度 O(2k+1poly(k))

Submission Link.

Problem C. CF865E Hex Dyslexia

题意:

给定一个十六进制数 x,可能含有前导 0。找到最小的长度和输入的数相等的十六进制数 b 使得存在另一个个长度和这个数相等的十六进制数 a 满足 ab=xa,b 的各位数字可以通过重排相同。a,b 可以有前导 0。若无解请报告,否则输出最小的 b

nx 长度,保证 n14,时限 3 秒。

解法:

首先考虑有解的必要条件。

由于 a,b 重排相等,所以必然模 15 同余。原因比较显然。

考虑 ab=x,所以 x0(mod15)。这是有解的必要条件。

考虑 ab 各位数字相等,但是却有 b=ax,若记 sx 各位数字和,则 s15ab 退位次数,原因是每次退位会使得数位和减去 15

考虑枚举哪些位退位,复杂度至多 O((nn2))

枚举进位后,每个位置的 aibi 可以直接求出。不妨将 b 看作 a 的置换,画出置换环,每条边的边权是 aiapi。我们需要在每个点上写上 [0,15] 的点权,使得每条边左右两数差为边权,同时最小化 a1,a2,,an 的字典序。

事实上,我们可以发现每个置换环的最小点权必然都为 0,否则将环上所有点权减去最小值即可。然后我们还可以发现,两个有相同数的环可以通过更改指出的边进行合并。于是我们得到结论,存在最优解使得存在唯一的置换环,大小为 n

接下来是容易的,进行 DP,记 fS 表示目前已经加入了 S 这些点的最小答案,转移是简单的,总复杂度 O((nn2)n2n),可以通过。

Submission Link.

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