![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CDQ
XSamsara
AFO
展开
-
BZOJ3262: 陌上花开【CDQ三维偏序】
3262: 陌上花开 一道求三维偏序的裸题。 第一维排序。 第二维二路归并,此时我们已经保证了左边一半的元素都小于等于右边一半。 第三维树状数组求逆序对。 #include<cstdio> #include<algorithm> using namespace std; const int MAXN=100005; int n,m,tot; struct xcw{ int...原创 2019-03-18 09:21:36 · 146 阅读 · 0 评论 -
BZOJ4237: 稻草人【CDQ】
4237: 稻草人 我们按照y分治,分成上下两部分,然后将x排序,用单调栈维护个数就可以了。 #include<cstdio> #include<algorithm> using namespace std; const int MAXN=200005; int n,stk1[MAXN],Top1,stk2[MAXN],Top2;long long Ans; struct ...原创 2019-03-18 09:48:15 · 196 阅读 · 0 评论 -
BZOJ3745: [Coci2015]Norma【CDQ】
3745: [Coci2015]Norma 我们对于a序列分治,枚举左端点(从右往左)维护MINMINMIN和MAXMAXMAX,右端点同时更新两个指针j,k,表示a[mid+1,j]≤MAXa[mid+1,j] \le MAXa[mid+1,j]≤MAX和MIN≤a[mid+1,k]MIN\le a[mid+1,k]MIN≤a[mid+1,k]。 于是右半边被分成三份。 这里设j&lt;...原创 2019-03-18 15:04:46 · 213 阅读 · 0 评论 -
BZOJ1176: [Balkan2007]Mokia【CDQ+树状数组】
1176: [Balkan2007]Mokia 将询问分成四部分,然后CDQ分治+树状数组就可以了,三个关键字为{t,x,y} #include<cstdio> #include<algorithm> using namespace std; const int MAXN=200005; struct xcw{int x,y,f,t,p;}a[MAXN],t[MAXN]; ...原创 2019-03-18 17:59:47 · 232 阅读 · 0 评论 -
BZOJ2716: [Violet 3]天使玩偶【CDQ+树状数组】
2716: [Violet 3]天使玩偶 我们将问题分成四部分讨论,对于左下角、右下角、左上角、右上角四个方向分别CDQ。 用树状数组维护最大值就可以了。 #include<cstdio> #include<cstring> #define min(x,y) ((x)>(y)?(y):(x)) #define max(x,y) ((x)<(y)?(y):(x))...原创 2019-03-18 19:13:20 · 1383 阅读 · 0 评论 -
BZOJ4553: [Tjoi2016&Heoi2016]序列【CDQ+DP】
4553: [Tjoi2016&Heoi2016]序列 我们可以得出递推式dp[i]=dp[j]+1,j<i,a[j]<=L[i],R[j]<=a[i]dp[i]=dp[j]+1,j<i,a[j]<=L[i],R[j]<=a[i]dp[i]=dp[j]+1,j<i,a[j]<=L[i],R[j]...原创 2019-07-27 11:27:16 · 106 阅读 · 0 评论 -
【Codeforces】848C. Goodbye Souvenir【CDQ】
【Codeforces】848C. Goodbye Souvenir 将头尾之差看成各位差。 设pre[x]pre[x]pre[x]为与xxx同色的上一个位置。 那么答案就是∑i=lr[l≤pre[i]]∗(i−pre[i])\sum_{i=l}^{r} [l \le pre[i]]*(i-pre[i])∑i=lr[l≤pre[i]]∗(i−pre[i]) 也就是∑i=1r[l≤pre[i]]∗...原创 2019-08-24 18:44:56 · 528 阅读 · 0 评论 -
BZOJ2961: 共点圆【二进制分组|CDQ+凸包+三分】
2961: 共点圆 根据圆方程(x−x0)2+(y−y0)2≤(x02+y02)2(x-x_0)^2+(y-y_0)^2 \le (x_0^2+y_0^2)^2(x−x0)2+(y−y0)2≤(x02+y02)2 解得x02+y02≤2xx0+2yy0x_0^2+y_0^2\le 2xx_0+2yy_0x02+y02≤2xx0+2yy0 右边项可以看成(2x,x0)⋅(2y,y0)...原创 2019-09-09 19:55:32 · 158 阅读 · 0 评论