摘要: 题目描述 分别枚举两个矩阵?那样n^6太要命了。 可以枚举两个矩形的交点 将交点看成原点,可以将整个区域分成四个象限,1与3对应,2与4对应 再枚举相对应的象限计算可以获得的利益,用hash判重 可枚举不同的象限时还要把hash清零,n^2次的memset就超时了。。。 那怎么继续优化呢? 可以用一 阅读全文
posted @ 2018-03-30 11:04 LeTri 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题目描述 真的是个很棘手的操作。。 注意每删除一个点,就需要clear一次。 阅读全文
posted @ 2018-03-29 16:36 LeTri 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目描述 要把打架的两堆猴子合并为一堆,查询的又是最大值,所以很容易想到可并堆。 题目要求打完架后战斗力最大的猴子的战斗力要减半,但不能直接在堆中进行这个操作,因为战斗力减半后这只猴子不一定是战斗力最大的猴子了,所以要先把这只猴子从堆中删除,减半后再插入。 阅读全文
posted @ 2018-03-29 08:12 LeTri 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目描述 阅读全文
posted @ 2018-03-28 20:10 LeTri 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目描述 用last[x]表示对x进行的上一次操作的位置,vis[x]表示x是否在大楼内。 Splay维护'?'的位置。 若x要进楼: 1.若x已在楼内,则去找last[x]到i之间是否有'?',若有,则可以把这个'?'当做是上一个x出楼,反之则 出现错误。 2.若x不在楼内,标记x在楼内。 若x要 阅读全文
posted @ 2018-03-28 19:14 LeTri 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题目描述 首先一定是让ZQC吃掉他能吃到的所有的球,这样才能尽可能的满足ZQC的质量是所有玩家中最大的。 在满足某一个玩家的质量不会超过ZQC的情况下,让这个玩家吃掉尽可能多的球,让其他玩家吃掉的尽可能少 所以由源点向每个玩家连流量为 ZQC的质量-该玩家的质量 的边。 再由每个玩家向他能吃到的球连 阅读全文
posted @ 2018-03-23 17:55 LeTri 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 题目描述 num[i]表示在[l,r]内数字i的个数 当区间变为[l±1,r]或,[l,r±1]的时候,num[i]由0变为1或由1变为0时答案才会变化 #include<complex> #include<cstdio> #include<algorithm> using namespace st 阅读全文
posted @ 2018-03-15 17:57 LeTri 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目描述 与 小B的询问 类似 对于一段区间[l,r],任选两个数构成排列的方案数A(r-l+1,2)=(r-l+1)*(r-l) 设num[i]为i在区间[l,r]内重复的次数,那么选出的两个数都是i的方案有num[i]*(num[i]-1)=num[i]2-num[i]种 那么在[l,r]选出相 阅读全文
posted @ 2018-03-14 21:10 LeTri 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目描述 阅读全文
posted @ 2018-03-14 17:42 LeTri 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目描述 修改某条路径上的值以及询问子树的最小值都最树剖的基础操作,那么如何实现换根呢? 考虑一下三种情况: 1.rot=询问的子树x,答案就是整棵树的最小值 2.rot在x的子树里,只有rot到x这一条链上的的节点的子树会变 找到x在rot方向上的子节点,答案就是除去这棵子树的最小值 3.rot不 阅读全文
posted @ 2018-03-08 21:52 LeTri 阅读(188) 评论(0) 推荐(0) 编辑