02 2024 档案

摘要:传送门 解题思路 直接二分能干掉的人数,然后check函数枚举所有区间,因为 m 很小,所以可以用 m 个ST表预处理每个区间对应每个属性的最大值。 一是需要注意二分的写法,而是注意check(0)时候的特判。 AC代码 #include<iostream> #include<algorithm> 阅读全文
posted @ 2024-02-29 10:31 尹昱钦 阅读(8) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 把每个国家的城市看成一条链。 那么建桥操作相当于将两条链的某处断开,然后交换断点后面的部分。 查询操作就是从链首开始找到链尾属于哪个国家。 这些操作可以由Splay平衡树来维护。 相当于开n个平衡树。 但是总点数O(NM)会爆炸,所以我们考虑实际用到的点只有O(N+Q),所以每个点 阅读全文
posted @ 2024-02-28 23:39 尹昱钦 阅读(23) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 对于每个人的棋子,总是最高的那个棋子发挥决定性作用,被消耗后,再看剩下的最高的棋子。这就相当于单调不递增栈的维护过程。 最后就要比较两个人的单调不递增栈是否完全相同。 和经典的楼房重建相似,但是这个题不止需要维护单调栈的长度,还要维护哈希值。 我是分开写的,但是实际上可以直接用pa 阅读全文
posted @ 2024-02-27 20:57 尹昱钦 阅读(66) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 动态维护区间里面单调递增斜率的长度 需要维护两个信息:上述长度,和区间最大值(合并时需要) 难点在于两个子区间的合并。 左区间的楼房一定都能看见(没有遮挡),所以要在右区间二分,找到左面最大值 lmax 在右区间的位置,然后进行合并。 复杂度两个log。 AC代码 #include 阅读全文
posted @ 2024-02-25 11:36 尹昱钦 阅读(32) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示