
分治
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[分治 单调栈] BZOJ 4237 稻草人
x排序 考虑分治左下角在左半边 右上角在右半边 两边各维护一个单调栈 然后左边查询在右边二分细节自行在代码中领会#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;inline char nc()原创 2016-06-06 07:37:32 · 794 阅读 · 0 评论 -
[分治 最短路] BZOJ 4456 [Zjoi2016]旅行者
所有询问离线 把平面分成两块 如果询问两点在同一边 可以不穿过中线 也可以穿过 如果询问两点在不同边 必须穿过 那么我们就可以用中线上所有点更新下 然后递归 卡常数?#include<cstdio>#include<cstdlib>#include<algorithm>#include<vector>#include<queue>using namespace std;ty原创 2017-03-21 23:40:21 · 580 阅读 · 0 评论 -
[玄学分治 || 线段树] BZOJ 2675 Bomb & Tsin 1322 Bomb(李超)
玄学分治做法 %%% http://www.cnblogs.com/ccz181078/p/5603283.html三个点(x1,y1),(x2,y2),(x3,y3)的两两曼哈顿距离和为2(max(x1,x2,x3)+max(y1,y2,y3)-min(x1,x2,x3)-min(y1,y2,y3))四项三个点 由抽屉原理 必至少有两项是同一个点的那么最大值就是max原创 2016-12-26 14:57:02 · 669 阅读 · 0 评论 -
[XOR最小生成树 分治 Trie || Prim 堆] BNUOJ 52318 Be Friends
关于位运算生成树问题 尛焱轟在APIO上专门讲过 一些杂七杂八的东西不过还是没怎么搞清楚这个可以分治 显然对于最高位 为0的一团 为1的一团 那么只需要找最小的一条边连接 这个可以在其中一半枚举 另一半建成Trie在上面查询然后分治到低一位#include#include#include#includeusing namespace std;typ原创 2016-12-23 16:20:18 · 944 阅读 · 0 评论 -
[最小乘积生成树 分治] BZOJ 2395 [Balkan 2011]Timeismoney
丢下题解就走:http://www.cnblogs.com/autsky-jadek/p/3959446.html贴吧的讨论:http://tieba.baidu.com/p/3357839800#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;t原创 2016-07-04 18:37:09 · 675 阅读 · 0 评论 -
[n点无向图个数 分治FFT || 多项式求逆] BZOJ 3456 城市规划
然后就分治FFT了#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin)原创 2016-09-14 19:28:17 · 859 阅读 · 0 评论 -
[分治 floyed] 2016 计蒜之道 复赛 百度地图的实时路况
使用分治,考虑Floyd算法本来就是一个增量的过程。记solve(l,r)表示加入除了l到r之间的点的APSP然后分治时间复杂度O(n^3logn)#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;原创 2016-11-09 10:28:51 · 503 阅读 · 0 评论 -
[AND最大生成树 分治 Trie || Kruskal] UOJ Goodbye Yiwei C #176. 新年的繁荣
这个直接上题解吧 :http://vfleaking.blog.uoj.ac/blog/1244Kruskal 用尛焱轟的话来说就是枚举边权 可以发现一种边权最多只有O(m)个联通块需要合并 O(m 2^m a(n))#include#include#includeusing namespace std;typedef long long ll;inli原创 2016-12-23 16:12:28 · 681 阅读 · 0 评论 -
[几何 分治] BZOJ 2928 [Poi1999]飞弹 Rockets
算导上的经典问题n2logn啊 卡来卡去 卡时过 main上过不去 TLE每次找到两个点I,j连一条边,使它们连线左边黑点=白点,右边黑点=白点,然后对左右递归处理即可。由数学归纳法可证这样一定有解。时间复杂度关键在于划分的平衡性,以及找连线的复杂度未想到如何快速Devide#include#include#inclu原创 2016-12-17 11:07:01 · 510 阅读 · 0 评论 -
[分治 || 单调栈 单调队列] 51Nod 1215 数组的宽度
分治#include#include#includeusing namespace std;typedef pair abcd;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,1原创 2016-11-22 14:25:05 · 446 阅读 · 0 评论 -
[第二类斯特林数 组合 分治FFT||多项式求逆] BZOJ 4555 [Tjoi2016&Heoi2016]求和
自己好弱 多项式求逆不会啊分治FFT也是第一次打#include#include#includeusing namespace std;typedef long long ll;inline ll Pow(ll a,ll b,ll p){ ll ret=1; for (;b;(a*=a)%=p,b>>=1) if (b&1)原创 2016-08-22 21:28:49 · 1578 阅读 · 0 评论 -
[决策单调性 分治||单调栈 DP] BZOJ 2739 最远点
决策单调性 用分治或者单调栈 单调栈没打过 尴尬#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,原创 2016-08-23 18:17:41 · 1059 阅读 · 0 评论 -
[最小乘积匹配 分治 KM] BZOJ 3571 [Hnoi2014]画框
类似最小乘积生成树的做法详见另一文:http://blog.youkuaiyun.com/u014609452/article/details/51822880#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef pair abcd;inlin原创 2016-07-04 18:40:05 · 497 阅读 · 0 评论 -
[决策单调性 分治 主席树] BZOJ 4367 [IOI2014]holiday假期
比较显然的做法 枚举l,r 然后主席树这题有很多单调性可以利用对一个确定的l 最优的r 是单调的 来分治#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if原创 2016-07-05 16:25:17 · 535 阅读 · 0 评论 -
[分治] BZOJ 3745 [Coci2015]Norma
考虑分治 左端点在左边 右端点在右边枚举左端点 分情况讨论最大最小分别在哪边 然后前缀和处理#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1原创 2016-06-06 06:58:05 · 700 阅读 · 0 评论 -
[二进制分组 线段树 || 点分治 分治] UOJ #191 【集训队互测2016】Unknown
详见lzz的集训队论文二进制分组做法二进制分组是在线段树的结构上做的 方便区间查询 至于删除 采用延迟重构的思想 每一层只有最后一个区间是萎的 我们需要递归下去 询问还是O(logn)O(\log n)个节点 重构复杂度势能分析下O(nlogn)O(n\log n) 只有上凸包是有效的 合并的时候采用归并加Graham可以做到O(n)O(n) 不然以我的常数 T的血惨 但是卡内存 只有90分#原创 2017-05-28 11:15:45 · 3504 阅读 · 0 评论