AtCoder Beginner Contest 中的小思维题
1|0078D
https://atcoder.jp/contests/abc078/tasks/arc085_b
问题陈述
我们有一副由 张牌组成的扑克牌。每张牌上都写着一个整数。从最上面开始的第 张牌上的整数是 。
两个人 X 和 Y 将用这副扑克牌玩一个游戏。最初,X 手中有一张写有 的牌,Y 手中有一张写有 的牌。然后,从 X 开始,他们将交替进行以下操作:
- 从牌顶抽若干张牌。然后,丢弃手中的牌,保留最后抽出的牌。这里至少要抽出一张牌。
当牌组中没有牌时,游戏结束。游戏的得分是两位玩家手中牌上所写整数的绝对差值。
X 玩游戏的目的是使得分最大,而 Y 玩游戏的目的是使得分最小。游戏的得分是多少?
思路
其实可以想到就是,X 能拿到的只有倒数第二个或者倒数第一个,因为如果 X 选择了中间的任何一个,Y 的都可以剩下一些更差迫使 X 丢弃当前选择的。所以考虑一下选择哪一个更有就好了。要特判一下就是如果 则只能选择倒数一个。
2|0091C
2|1贪心
把红色点从小到大排序,蓝色点从大到小排序,然后对于每个红色点,找到所有满足的蓝色点中 最小的。
2|2二分图最大匹配
直接上匈牙利算法
3|0067D
两个人的最优策略都是优先占领 1 到 n 路径上的点,因为被占领的点,其子树也不能被占领。最后统计一下每个人最多可以占领多少个,比较一下即可。
4|0123D
虽然枚举的种类是 但是注意到 最大是 ,因此可以暴力枚举 然后取前 个,然后再暴力枚举即可。
5|0046D
可以想到的是能出布就出布,因为出布不会减分,但是出石头可能会减分。所以出的顺序应该是 gpgpgp
6|0096D
考虑只选择个位为 的质数,这样的话五个数的和一定为 的倍数。
7|0占位
https://atcoder.jp/contests/nikkei2019-2-qual/tasks/nikkei2019_2_qual_d
8|0204D
https://atcoder.jp/contests/abc204/tasks/abc204_d
令
设 dp 的状态转移方程为 表示前 个菜肴,占用第一个烤箱时长为 的方案是否存在。
这样的话直接 的枚举转移就好了
但是我们注意到对于任意一个 满足 成立,则一定会有 成立。如果吧 看成一个二进制数,则相当于左移 位,这样的话,我们可以是用 bitset
快速求解。
9|0207E
https://atcoder.jp/contests/abc207/tasks/abc207_e
令 表示分成 段的情况下前 个元素的方案数。可以得到一个 的转移如下
然后 等价与
因此我们其实可以用 个前缀和计算出转移
10|0074C
https://atcoder.jp/contests/abc074/tasks/arc083_a
一个满有意思的枚举题。看似是 dp 但实际上估计范围后,发现枚举复杂度是正确的。
__EOF__

本文链接:https://www.cnblogs.com/PHarr/p/18375766.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-08-23 2-SAT
2023-08-23 AtCoder Beginner Contest 315