一共是补了5个题 H题嗯是没看明白
先写思路 以后找时间补上
A.Ban or Pick, What's the Trick
首先观察数据范围 最重要的是k只有10个!!!
然后我们知道 每次肯定要么选自己的最强的 要么ban对面最强的
所以在每一回合中 如果我们已知回合数以及自己选了多少 对面选了多少 就知道双方的bp情况了
所以这样的一个状态是固定的 至于并且很好转移 所以dp加上记忆化搜索就很自然的出现了
令dp[n][a][b] 表示第n次操作已经选了a个A中 b个B中的角色
每次考虑选还是ban 然后转移即可
直接统计一下每个子树的深度答案就出来了 签到题
将pi排下序 会发现一定是前面一坨人押2队,后面一坨人押1队 并且我们肯定是让赔率刚好卡在边界上
然后枚举前面有多少人 现在考虑sx+sy-max{sx*x,sy*y} 这个式子
sx已知了 当sy增大时 sy*y也在增大 所以枚举后面有多少人的话 这个式子是一个单峰函数 直接三分即可
模拟题 嗯做就行 每次踢出去一半人以上 最多也就nlogn
模拟每次加入一个新的石头剪刀布 它在金字塔上右边爬楼梯的过程 如果它能一直赢下去 那么它会一直打赢它左边的人 直到有一个人打赢它 最后换成打赢它的人继续向上 所以对于金字塔的又腰来说 就是用ai一直向上打 打不能打为止 原来的石头剪刀布依然保持不动 所以可以抽象地维护成一个栈 然后每次加入新的用栈顶元素和现在的继续比较 只到有一个元素可以打过现在的元素 把现在的元素入栈 最后输出栈底的元素即可 标签:sy,sx,元素,每次,ICPC,补题,2022,打赢 From: https://www.cnblogs.com/Vellichor/p/16936009.html