分四类输出即可。
Takahashi |
Aoki |
result |
fine |
fine |
4 |
fine |
sick |
3 |
sick |
fine |
2 |
sick |
sick |
1 |
submission.
很小, 枚举 ,判断是否满足 ,且 A
,B
,C
。
submission.
当然可以 枚举 ,算出 。
把所有不是自环的无向边丢进 set,set 中元素个数就是最终简单图的边数。
减边数就是答案。
submission.
与 交换,就是将 平移一位(好理解一点?)。
令 的个数为 ,所有 的位置是 。若最终的区间是 (左端点为 ),那么总代价就是 。 取 的中位数即可(经典结论,绝对值可理解为数轴上两点距离,画图,调整法可证)。
submission.
枚举倍数比枚举因数好做得多。
大体思路是对于枚举 的每个因数 (GCD 一定是本身的因数),若 是不少于 个数的因数,那么 这个数就是一个可能的答案,所有的 取 max 即可。虽然我们包含了一些错误的答案,不一定是【最大】公因数,但一定会被更大的覆盖掉。
记 为 在原序列中出现了多少次。
我们枚举值域内所有的数 ,枚举所有 的倍数 ( 就是 的因数),那么 这个数就是 个数的因数。
我们再次枚举 ,如果 ,那么就可以用 更新 。
输出每个 即可。
我们先用二分求出以 结尾的 LIS 长度 。
具体地,我们建一个辅助数组 ,初始长度为 ,维护其单增性。
从前往后枚举 ,如果 大于 的尾元素,就将 插入 的末尾, 就是 的长度;否则,找到第一个 中大于等于 的位置 ,连同 这个位置, 就等于 ,然后将 改为 。
首先 的单增性是不会被破坏的,无论哪种情况。
的更新操作也很好理解,相当于找到了前面一个比当前小的元素转移。
那为什么要修改 b[p]=a[i]
呢?为了后面转移。后面可能有 的元素 ,这时将 接在 后面显然不劣。(手玩一下,很好理解)
每个询问的上界只需保证 大于等于末元素即可(因为是 LIS)。
于是就是一个二维数点的板子。
具体地,就是平面上有 个点 ,值为 ,每个询问要求矩形 中的最大值。
离线一维,用数据结构(树状数组)维护另外一位即可。
submission.
不会。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步