Codeforces Round 889 (Div. 1) 题解
A1. Dual (Easy Version)
https://codeforces.com/contest/1854/problem/A1
题意
给定一个长度为
- 选定两个下标
, 可以相同,然后 。
要求构造一种操作方案,使得
题解
其实
首先如果没有正数,那么直接做一遍后缀和即可,次数
如果有正数,那么随便选一个正数,然后不断自己加自己,直到大于一个
然后让负数加上这个处理完的正数,做一遍前缀和即可,操作次数最多
https://codeforces.com/contest/1854/submission/216383173
A2. Dual (Hard Version)
https://codeforces.com/contest/1854/problem/A2
题意
给定一个长度为
- 选定两个下标
, 可以相同,然后 。
要求构造一种操作方案,使得
题解
首先前缀/后缀和最少需要
还剩下
分三种情况讨论(赛时就是没想到,寄在这了):
-
如果都是
的数,直接做前缀和;如果都是 的数,直接做后缀和。 -
如果正数的个数
,那么先将绝对值最大的负数自加 次(至多为 ),再加到这些正数上,就可保证所有的数都是非正数了;如果负数的个数 ,那么先将绝对值最大的正数自加 次(至少为 ),再加到这些负数上,就可保证所有的数都是非负数了。次数刚好是 次。 -
否则正数和负数的个数都至少为
,所以正数和负数的个数最大值也只能取到 ,用绝对值最大的加即可。次数也是 次。
https://codeforces.com/contest/1854/submission/216386326
B. Earn or Unlock
https://codeforces.com/contest/1854/problem/B
题意
有一个长度为
你要重复做以下操作:
-
如果
是锁定的,那么直接结束所有操作。 -
解锁接下来
个数或将得分加上 。 -
。
求最大得分。
题解
考虑暴力进行可行性 DP,设
初始状态
很显然可以使用 bitset 优化,如果
时间复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下