随笔分类 -  CDQ分治

摘要:题目大意: 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值. 思路: 把每个询问拆成四个点 然后按时间cdq分治 查询以每个点为右上角的矩形内 最大权值和 1 #include<iostream> 2 #include<cstdio> 3 #include< 阅读全文
posted @ 2018-03-24 11:11 jack_yyc 阅读(133) 评论(0) 推荐(0)
摘要:题目大意: 网格上有些点 找出一些点对使这两个点围成的矩形内没有点 思路: 我们先用cdq降低复杂度 然后对于分治的两边 左右两端分别按照y排序 然后我们对于右边的点 只需要统计出以它为右上角顶点的矩形即可 我们直接通过对于左右两边分别维护两个单调栈 左边x单减 右边x单增 然后每次在右边插入点的时 阅读全文
posted @ 2018-02-10 13:51 jack_yyc 阅读(156) 评论(0) 推荐(0)
摘要:题目大意: 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数 思路: 转化一下的三位偏序 下标的倒序定为x 数值定为y 删除的倒序为z 然后对于每个元素需要求三个都比 阅读全文
posted @ 2017-12-21 22:35 jack_yyc 阅读(162) 评论(0) 推荐(0)
摘要:题目大意: 有 n个元素,第 i 个元素有 ai​、bi​、ci​ 三个属性,设 f(i) 表示满足 aj​≤ai​ 且bj​≤bi​ 且 cj​≤ci​ 的 j 的数量 对于 d∈[0,n),求 f(i)=d 的数量 思路: cdq分治 先按照x排序记录一下顺序 然后cdq分治 在分治里面 先分治 阅读全文
posted @ 2017-12-19 14:21 jack_yyc 阅读(197) 评论(0) 推荐(0)