AtCoder Beginner Contest 365 题解
AtCoder Beginner Contest 365
擦,F 假了
A
判断闰年
B
输出次大值的下标
用 pair 排序后即可
C
给定一个数组 和整数 ,尝试找到一个最大的 ,使得:
不等号左边显然随着 的增大而增大,所以可以二分一个 ,然后判断即可
D
两个人玩 局剪刀石头布。已知 A 的每一局的决策,求 B 的决策在满足下面条件的情况下,最多能赢几局:
- B 的连续两局决策不同
- B 任意一把都不能输给 A
直接设计状态 f[i][0/1/2]
表示玩了前 局游戏,第 局出 剪刀/石头/布 时最多能赢几局,直接转移即可。
E
给定序列 ,统计如下式子的值:
首先拆分成前缀和,记 为 的异或前缀和,等价于求:
观察发现就是求所有 的
拆位,每次统计第 位的贡献。
按顺序从左到右计算,每次枚举一个 ,变成统计有多少 满足 或 。
就是数 和 的个数,前缀和即可。
F
不难发现贪心地往右走直线是对的。
然后考虑用线段树上二分处理出 的上/下边界向右最多能走到哪里。到了极限之后,肯定就直接往上或往下走到边界
然后这个东西,你再加个倍增,就可以回答询问了。感觉不难吧,这个套路以前在 CF 见过。
赛时想的差不多,不过有个细节假了。
G
发现这是一道怎么看都不可能非多项式写的题。
考虑根号分治,对于段数小的,暴力统计,总共有 种,统计复杂度 ,时间复杂度 。
对于段数多的,暴力统计他和别的段的答案,总共有 个,统计复杂度 ,时间复杂度 。
均值不等式, 最优。
本文来自博客园,作者:lingfunny,转载请注明原文链接:https://www.cnblogs.com/lingfunny/p/18341173
分类:
比赛题解 / AT 比赛题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】