题意:
有 个元素,第 个元素有五个参数 。
你需要求出一个 的排列 ,满足 ,同时最小化这个排列的权值。
一个排列的权值为 ,其中 定义为:
,,,。
解法:
这一类问题都可以描述如下:
你要求一个排列 ,最小 / 最大化 ,其中 。
考虑到 的值与参数关系有关,考虑钦定顺序进行连续段 DP,记 表示已经填入 ,目前形成了 个连续段的答案。转移都是容易的,不过细节是插入 和 时有些转移是不合法的需要注意。
Submission Link.
题意:
给定 与一个长度为 的整数序列,每个数 。求序列的两个非空不交子区间,异或和相等或确定无解。
。
解法:
性质很多,逐步挖掘。
首先,不交的限制绝大多数情况都没意义。如果找到两个相交子区间异或相等,当且仅当一个区间包含另一个且长度差为 时无法构造不交的区间。
其次,我们断言必然有解。考虑反证。根据上述结论,容易知道每种区间异或和出现次数不超过 次,否则有解。其次,考虑区间个数为 ,每种异或结果不超过 个,故至少有 个不同区间异或,与题意矛盾。
最后,根据生日悖论,每次随机一个区间并计算异或和,加入 map
维护即可。复杂度 。
Submission Link.
题意:
给定一个十六进制数 ,可能含有前导 。找到最小的长度和输入的数相等的十六进制数 使得存在另一个个长度和这个数相等的十六进制数 满足 且 的各位数字可以通过重排相同。 可以有前导 。若无解请报告,否则输出最小的 。
记 为 长度,保证 ,时限 秒。
解法:
首先考虑有解的必要条件。
由于 重排相等,所以必然模 同余。原因比较显然。
考虑 ,所以 。这是有解的必要条件。
考虑 与 各位数字相等,但是却有 ,若记 为 各位数字和,则 为 退位次数,原因是每次退位会使得数位和减去 。
考虑枚举哪些位退位,复杂度至多 。
枚举进位后,每个位置的 可以直接求出。不妨将 看作 的置换,画出置换环,每条边的边权是 。我们需要在每个点上写上 的点权,使得每条边左右两数差为边权,同时最小化 的字典序。
事实上,我们可以发现每个置换环的最小点权必然都为 ,否则将环上所有点权减去最小值即可。然后我们还可以发现,两个有相同数的环可以通过更改指出的边进行合并。于是我们得到结论,存在最优解使得存在唯一的置换环,大小为 。
接下来是容易的,进行 DP,记 表示目前已经加入了 这些点的最小答案,转移是简单的,总复杂度 ,可以通过。
Submission Link.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2023-11-17 CF903G Yet Another Maxflow Problem 题解