数据结构
G_congratulation
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
splay 模板
#include#include#include#includeusing namespace std;const int maxn = 1000010;int sz, root;int ch[maxn][2], cnt[maxn], size[maxn], p[maxn], key[maxn];inline void clear(int x) { ch[x][0] = c原创 2017-01-21 20:54:36 · 402 阅读 · 0 评论 -
bzoj 1901 动态区间第k大 (树套树)
刚写完线段树套splay的,回头补上树状数组套主席树的;线段树套splay的思路:每个线段树节点上有一棵splay里面存对应区间内的所有数字;修改时直接在每个splay上进行删除节点后再添加;查询时二分值判断是第多少大的,向大逼近;代码还是一贯的长。。。#include#include#include#include#includeusin原创 2017-02-07 00:06:19 · 701 阅读 · 0 评论 -
noi2001 食物链(并查集)
动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是“1 X Y”,表示X和Y是同类。 第二种说法是“2 X Y”,表示X吃Y。原创 2016-09-24 20:59:47 · 586 阅读 · 0 评论 -
codevs 3327(dp+单调队列优化)---以此记录我的脑残经历
题目 给定一行n个非负整数a[1]..a[n]。现在你可以选择其中若干个数,但不能有超过k个连续的数字被选择。你的任务是使得选出的数字的和最大。原创 2016-08-22 12:09:04 · 657 阅读 · 0 评论 -
noip2010 关押罪犯
题面 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨 气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c的冲突事件。 每年年末,警察局会将本年内监狱原创 2016-08-18 20:40:10 · 511 阅读 · 0 评论 -
vijos1451 区间dp+st表优化
题意 守护者拿出被划分为n个格子的一个圆环,每个格子上都有一个正整数,并且定义两个格子的距离为两个格子之间的格子数的最小值。环的圆心处固定了一个指针,一开始指向了圆环上的某一个格子,你可以取下指针所指的那个格子里的数以及与这个格子距离不大于k的格子的数,取一个数的代价即这个数的值。指针是可以转动的,每次转动可以将指针由一个格子转向其相邻的格子,且代价为圆环上还剩下的数的最大值。 现在对原创 2016-08-18 12:01:54 · 1145 阅读 · 0 评论 -
LA3938 线段树+分治
题意 给出长度为n的整数序列,然后m次询问,对于每次询问,要求找到区间内的两个下标x,y使得区间和尽量大,如果有多解,x尽量小,还有多解,那么y也尽量小分析 最大连续和的分治分治算法是解决此题的关键,构造一棵线段树,并查集维护四个值:区间和sum,最大连续和max_sub、最大前缀和max_pre、最大后缀和max_last。建树与修改时注意 max_sub[o]=max(max(m原创 2016-08-18 11:13:37 · 505 阅读 · 0 评论 -
tarjan算法----求强连通分量
扔上带注释的代码 回去慢慢补==#include<cstdio>#include<iostream>#include<cstdlib>#include<algorithm>#include<cstring>#define max_edge 10010#define max_node 10010using namespace std;struct Edge { int u;原创 2016-07-16 19:17:12 · 411 阅读 · 0 评论 -
RMQ问题——sparse-table算法
RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题sparse table算法为一种dp算法。原创 2016-07-11 15:34:06 · 708 阅读 · 0 评论 -
Dinic网络流(我的模板+注释)
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring> #define maxn 10010#define maxm 10202010#define Inf 210000000using namespace std;struct Edge{ int u, v, cap, flow; i原创 2016-09-24 20:39:49 · 617 阅读 · 0 评论
分享