摘要: 传送门 这道题序列很长,但是操作数很少,然后也没想到什么好的数据结构来维护,那就分块吧。 感觉维护的过程很好想,修改的时候对于整个块都在内的直接打标记,两个零散的区间暴力重构,重新排序。查询的时候,对于整块的,直接在块内lowerbound一下z-add[i]的位置,零散的话直接暴力计算即可。 复杂 阅读全文
posted @ 2018-10-23 08:05 CaptainLi 阅读(202) 评论(0) 推荐(0)
摘要: 传送门 还有这种操作? 我看到这道题的时候想到暴力枚举,不过a的范围极大令人头疼。Ssy说他要用Python然后他T了 不过后来发现,因为我们要解的方程左边是等于0的,所以我们可以直接把所有的a对于某一个数取模,这个在读入的时候就能处理,之后直接暴力枚举m用秦九韶算法硬算即可。 这都是什么神仙操作 阅读全文
posted @ 2018-10-23 07:57 CaptainLi 阅读(204) 评论(0) 推荐(0)
摘要: 传送门 这道题在处理上还是稍微有点麻烦的…… 可以想到,如果使两列火柴距离差值最小,肯定是每列火柴排名第k高的对应的在同一位置。这样的话,如果我们把第二列火柴映射为其出现在第一列火柴中的位置,我们只要求一下映射之后的逆序对数即可。 不过不能直接映射,因为有些数并不是公共的,所以我们先把两个序列都先离 阅读全文
posted @ 2018-10-23 07:48 CaptainLi 阅读(265) 评论(0) 推荐(0)
摘要: 传送门 题目描述的意思就是,对于给定的所有区间,计算每个区间里面有多少个质量大于w的矿石,把个数乘以价值和即为区间贡献,设定一个w值使得区间贡献和最接近S。 可以看出,这个贡献和肯定是随着w具有单调性变化的,我们又想到二分答案……然后每次更新一下差值最小值,如果贡献和大于S就增大w,否则减小w。 计 阅读全文
posted @ 2018-10-23 07:42 CaptainLi 阅读(261) 评论(0) 推荐(0)
摘要: 传送门 一道比较简单的并查集题,我们先把所有冲突事件按照影响力排序,之后从大到小处理他们。每次对于两个敌人,如果其中一个人没有敌人,那么就把他的敌人设为当前这个人,否则把他的敌人所在的集合与这个人合并即可。判断的时候如果两人在同一集合即不合法。 此题还有一种做法。我们要求的是最大值最小,所以我们还是 阅读全文
posted @ 2018-10-23 07:37 CaptainLi 阅读(135) 评论(0) 推荐(0)