AtCoder Beginner Contest 261 A-F 题解
官方题解太难读懂了QAQ,先写 A-F 的题解,后面的 G 和 Ex 蹲一个大佬的题解 awa。
A - Intersection
差分一下就行。
(也不知道是谁没测样例就交结果 WA 了一发)
Code
B - Tournament Result
枚举判断即可。
Code
C - NewFolder(1)
我打过的最简单的 C。直接 std::map<std::string,int>
存一下就行。
Code
D - Flipping and Bonus
发现状态很多,而且数据允许 的算法通过,考虑 DP。
预处理出得分为 时的额外奖励 。(就是用桶存一下原题的 )。
设 表示第 轮得分为 时得到的最多钱数。
状态转移方程:
-
-
。
最后取最大值输出即可。
Code
E - Many Operations
看完题面,对于所有操作,显然二进制位与位之间没有任何影响,联想到 [NOI2014] 起床困难综合症 这个题,考虑按位拆分。
对于每一位,可以预处理出每次操作的影响。
具体而言,设 表示当前位初始值为 ,进行前 次操作后的值。
令 表示 经过第 次操作后的值。
不难推出式子:
然后就是统计答案,用一个变量 表示当前该位的值, 初值为题中的 该位的值 。
遍历 ,当遍历到 时,,累加答案。
最后统一输出即可。
Code
F - Sorting Color Balls
如果不考虑颜色,这道题的答案显然就是逆序对的个数。
但现在有了限制,颜色相同时一次交换并不会产生代价。
也就是说,一个颜色相同的逆序对对答案没有任何影响。
那么我们可以先算出原序列里的逆序对个数,再用 std::vector
把每种颜色的值存一下,对于所有颜色算一遍逆序对,再用整个序列的逆序对数减去这个数即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现