其他算法
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[悬线法] BZOJ1057 [ZJOI2007]棋盘制作
当年是怎么把这道悬线法SB题漏掉没刷的总之悬线法,刚好在省选前复习下一开始愣是没看出来 诶 太弱#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf原创 2016-03-15 11:21:38 · 551 阅读 · 0 评论 -
[高精度 递归] BZOJ 2930 [Poi1999]梦游者 Sleepwalker
我还能说什么呢#include#include#include#includeusing namespace std;const int con=100000000;const int wei=8;class Int{ public:long long a[100]; void getdata(int x){memset(a,0,sizeof(a));wh原创 2016-12-17 11:02:23 · 388 阅读 · 0 评论 -
[GarsiaWachs算法] BZOJ 3229 [Sdoi2008]石子合并 & POJ 1738 An old Stone Game & 51Nod 1023 石子归并 V3
教主八题之一 却没有写堆或平衡树 投机取巧了 以后会把四边形不等式优化 和 数据结构维护都写一遍详细解法见ACdreamers : http://blog.csdn.net/acdreamers/article/details/18043897O(n2)的算法在这位神犇的实现下表现的十分优越 %%%#include#include#includeusing namespa原创 2016-11-25 21:05:44 · 765 阅读 · 2 评论 -
[随机增量法 最小圆覆盖] BZOJ 1366 [Balkan2002]Alien最小圆覆盖 & 1337 最小圆覆盖 & 2823 [AHOI2012]信号塔
期望O(n) 棒极了BZOJ 2823#include#include#include#include#define eps 1e-8#define X first#define Y secondusing namespace std;typedef pair Point;int n;Point P[1000005],C;double R;inline原创 2016-02-04 21:00:44 · 1239 阅读 · 2 评论 -
[悬线法] COGS 1722 [WC2002]奶牛浴场
论文:王知昆--浅谈用极大化思想解决最大子矩形问题经典好论文#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,s原创 2016-12-11 14:24:27 · 414 阅读 · 0 评论 -
[悬线法] 51Nod 1158 全是1的最大子矩阵
复习#include#include#includeusing namespace std;const int N=505;int n,m,a[N][N];int lft[N][N],rgt[N][N],hgt[N][N];int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout);原创 2016-11-17 07:51:26 · 483 阅读 · 0 评论 -
[近似算法 分治] UER #7 B.天路
vfk的题解没看懂 羞...#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) ret原创 2016-10-31 17:54:31 · 380 阅读 · 0 评论 -
[最大生成树] BZOJ 3943 [Usaco2015 Feb]SuperBull
#include #include #include using namespace std;int main() { int N; cin >> N; vector A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } long long result = 0; vector used(N, fa原创 2016-02-04 20:08:12 · 735 阅读 · 0 评论 -
[悬线法] BZOJ 3039 玉蟾宫
《浅谈用极大化思想解决最大子矩形问题》王知昆#include#include#include#includeusing namespace std;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(b原创 2016-02-04 20:01:47 · 869 阅读 · 0 评论 -
[全局最小割] BZOJ 3345
最朴素的做法 n次最小割 O(mn^2)“ 关于全局最小割的问题:首先刚才提到的集合S和T是客观存在的与最优解相关但不知道的量。S+T=全顶点集那么一定有顶点1属于S或1属于T。刚才又提到了对任意点s属于S,t属于T,对st求最小割即可得到全局最优解。当点1属于S时,我们只要枚举另一个点i,强行认为它属于T,求一遍割。那么当i真的属于T的时候我们就得到最优解了。否则得到了一个没原创 2016-02-04 20:56:39 · 1035 阅读 · 0 评论 -
[N皇后 构造] BZOJ 3101 N皇后
这种题的意义何在...传送门 http://blog.csdn.net/nike0good/article/details/41006705以下是找到的N皇后一组解得构造法:一、当n mod 6 != 2 或 n mod 6 != 3时,有一个解为:2,4,6,8,...,n,1,3,5,7,...,n-1 (n为偶数)2,4,6,8,...,n-1,1,3原创 2016-02-05 22:30:51 · 847 阅读 · 0 评论 -
[线段树 中位数] BZOJ 4071 [Apio2015]巴邻旁之桥
首先如果办公室和家在同一侧,直接将距离加到答案中即可。如果办公室和家不在同一侧对于k=1,显然只需要将桥建在所有位置的中位数即可。对于k=2,可以发现每个人都会选择距离家和办公室中点较近的桥行走。那么我们就可以按照家和办公室中点将每个人排序,枚举分割点,将分割点前后的人分别处理。在权值线段树上二分求中位数#include#include#includeusing na原创 2016-05-04 21:24:58 · 1295 阅读 · 0 评论 -
[Boruvka算法 曼哈顿距离最大生成树] 省选模拟赛 4 C. 树树树 mst
题目大意 求曼哈顿距离最大生成树 n≤100000n\leq 100000Boruvka算法是什么呢 也就是说 我们只要每次求一个连通块连出去的最远的边 把这些边都加入 只要这样 O(logn)O(\log n)就能得到一棵最大生成树每次求两个连通块之间最大边的时候,就是求 |xi−xj|+|yi−yj||x_i − x_j| + |y_i − y_j| 的最大值,分情况用set维护即可。但是神原创 2017-03-18 20:49:12 · 3060 阅读 · 2 评论