
CDQ
make_it_for_good
这个作者很懒,什么都没留下…
展开
-
bzoj 2726 [SDOI2012]任务安排 CDQ分治维护凸包 dp
单调处理出第一个串往两边K个能覆盖的字符。 然后对四种字符每种字符做一遍FFT。 对于第一个串,如果这个位置不能匹配当前字符,那该位置为1。 对于第二个串,如果这个位置为当前字符,那该位置为1。 把第二个串反过来和第一个串跑FFT。 答案是在所有FFT中都为0的合法位置个数。#include <bits/stdc++.h> using namespace std; #define N 21原创 2016-12-15 08:57:41 · 647 阅读 · 0 评论 -
bzoj 2961 共点圆 CDQ分治 凸包
凸包一向写得蛋疼,何况这题有两个凸包。。。 条件(x1−x)2+(y1−y)2>x2+y2(x1-x)^2+(y1-y)^2>x^2+y^2 化一下可以变成 x12+y12−2xx1−2yy1>0x1^2+y1^2-2xx1-2yy1>0 最大化x12+y12−2xx1−2yy1x1^2+y1^2-2xx1-2yy1 就是最小化b=2xx1+2yy1b=2xx1+2yy1 y=by1+(−x原创 2017-01-04 21:40:49 · 696 阅读 · 0 评论