关闭

[二进制分组 线段树 || 点分治 分治] UOJ #191 【集训队互测2016】Unknown

详见lzz的集训队论文二进制分组做法二进制分组是在线段树的结构上做的 方便区间查询 至于删除 采用延迟重构的思想 每一层只有最后一个区间是萎的 我们需要递归下去 询问还是O(logn)O(\log n)个节点 重构复杂度势能分析下O(nlogn)O(n\log n) 只有上凸包是有效的 合并的时候采用归并加Graham可以做到O(n)O(n) 不然以我的常数 T的血惨 但是卡内存 只有90分#...
阅读(264) 评论(0)

[分治 最短路] BZOJ 4456 [Zjoi2016]旅行者

所有询问离线 把平面分成两块 如果询问两点在同一边 可以不穿过中线 也可以穿过 如果询问两点在不同边 必须穿过 那么我们就可以用中线上所有点更新下 然后递归 卡常数?#include #include #include #include #include using namespace std; ty...
阅读(158) 评论(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...
阅读(189) 评论(0)

[XOR最小生成树 分治 Trie || Prim 堆] BNUOJ 52318 Be Friends

关于位运算生成树问题 尛焱轟在APIO上专门讲过 一些杂七杂八的东西 不过还是没怎么搞清楚 这个可以分治 显然对于最高位 为0的一团 为1的一团 那么只需要找最小的一条边连接 这个可以在其中一半枚举 另一半建成Trie在上面查询 然后分治到低一位 #include #include #include #include using namespace std; typ...
阅读(207) 评论(0)

[AND最大生成树 分治 Trie || Kruskal] UOJ Goodbye Yiwei C #176. 新年的繁荣

这个直接上题解吧 :http://vfleaking.blog.uoj.ac/blog/1244 Kruskal  用尛焱轟的话来说就是 枚举边权 可以发现一种边权最多只有O(m)个联通块需要合并 O(m 2^m a(n)) #include #include #include using namespace std; typedef long long ll; inli...
阅读(159) 评论(0)

[几何 分治] BZOJ 2928 [Poi1999]飞弹 Rockets

算导上的经典问题 n2logn啊 卡来卡去 卡时过 main上过不去 TLE 每次找到两个点I,j连一条边,使它们连线左边黑点=白点,右边黑点=白点,然后对左右递归处理即可。 由数学归纳法可证这样一定有解。 时间复杂度关键在于划分的平衡性,以及找连线的复杂度 未想到如何快速Devide #include #include #inclu...
阅读(139) 评论(0)

[分治 || 单调栈 单调队列] 51Nod 1215 数组的宽度

分治 #include #include #include using 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...
阅读(199) 评论(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;...
阅读(200) 评论(0)

[n点无向图个数 分治FFT || 多项式求逆] BZOJ 3456 城市规划

然后就分治FFT了 #include #include #include using 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)...
阅读(377) 评论(0)

[决策单调性 分治||单调栈 DP] BZOJ 2739 最远点

决策单调性 用分治或者单调栈  单调栈没打过 尴尬 #include #include #include using 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,...
阅读(352) 评论(0)

[第二类斯特林数 组合 分治FFT||多项式求逆] BZOJ 4555 [Tjoi2016&Heoi2016]求和

自己好弱 多项式求逆不会啊 分治FFT也是第一次打 #include #include #include using 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)...
阅读(478) 评论(0)

[决策单调性 分治 主席树] BZOJ 4367 [IOI2014]holiday假期

比较显然的做法 枚举l,r 然后主席树 这题有很多单调性 可以利用 对一个确定的l 最优的r 是单调的 来分治 #include #include #include using namespace std; typedef long long ll; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if ...
阅读(214) 评论(0)

[最小乘积匹配 分治 KM] BZOJ 3571 [Hnoi2014]画框

类似最小乘积生成树的做法 详见另一文:http://blog.csdn.net/u014609452/article/details/51822880 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef pair abcd; inlin...
阅读(160) 评论(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...
阅读(238) 评论(0)

[分治 单调栈] 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()...
阅读(334) 评论(0)

[分治] BZOJ 3745 [Coci2015]Norma

考虑分治  左端点在左边 右端点在右边 枚举左端点 分情况讨论最大最小分别在哪边 然后前缀和处理 #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1...
阅读(318) 评论(0)
    个人资料
    • 访问:261085次
    • 积分:11910
    • 等级:
    • 排名:第1320名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:49条
    最新评论