自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

同学,你听说过DQS吗?

  • 博客(12)
  • 收藏
  • 关注

原创 hdu 1512 左偏树

题意大概是有n只猴子,m次矛盾,a和b产生矛盾时,如果他们不认识,就会找各自认识中最强壮的猴子打架,然后打架的猴子权值减半,这两拨猴子就互相认识了,成了一群猴子,每次求合成一群后的最大权值。#include<iostream>#include<cstdio>#define maxn 100001using namespace std;int f[maxn];int find(int x)

2016-12-31 19:55:35 483

原创 poj 2201 笛卡尔树

这个数据结构看上去非常巧妙,不过没有找到实用的例题。。。。#include<iostream>#include<cstdio>#include<algorithm>#define maxn 50005using namespace std;struct Pair{ int key,aux,id; int fa,ch[2]; void print() {pr

2016-12-31 19:33:41 504

原创 poj 3261 Milk Patterns 后缀数组+二分

题意是求可以重复的出现次数超过k次的子串,最长是多少。 样例输入 8 2 1 2 3 2 3 2 3 1 输出 4二分验证是否有连续的k-1个height大于所验证的答案。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define SZ 20005using nam

2016-12-27 08:03:15 411

原创 tyvj1860 后缀数组 模板

注意常数优化(优化输出等)。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int MAXN=2e5+10;int n,sa[MAXN],tmp[MAXN],rank[MAXN],sec[MAXN],cnt[MAXN],height[MA

2016-12-26 17:19:44 401

原创 noip2016 愤怒的小鸟 状压搜索

这道题稍微卡了一下精度,浮点数直接判相等是会挂掉的。然后就是搜索,选定当前未选的最小编号,枚举其他的点确定一条抛物线(如果可以),然后把在这条线上的点都选上。确定抛物线推一下就可以。#include<iostream>#include<cstdio>#include<queue>#include<cstdlib>#include<map>#define LL long longusing

2016-12-21 20:40:47 1079

原创 bzoj2599 Race 点分治

给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000树的点分治,用数组cnt[x]记录与根距离为x最小多少条边,然后每搜完一棵子树,再用这棵子树的信息来更新cnt,避免统计同一棵子树中的点对。#include<iostream>#include<cstdio>#include<algorithm>#define maxn 20

2016-12-21 20:28:52 493

原创 bzoj2654 tree 最小生成树+二分验证

给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。因为随着白色边权值同时增大或同时减小,最小生成树中白色数量也会增大或减小,所以可以二分一个值Mid,白色边同时加上Mid,求生成树中白边数量。然后调整上下界。#include<iostream>#include<cstdio>#include<algorithm>#define maxn 50005

2016-12-20 21:25:27 660

原创 bzoj1468 tree 点分治

给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K计算经过根的路径,既离根的距离之和小于K的点,然后递归处理不经过根的路径。这样会有一些重复,两点与根的距离之和小于K,但是路径不经过根,需要减掉。#include<iostream>#include<cstdio>#include<algorithm>#define maxn 80005using namespa

2016-12-20 19:16:06 478

原创 noip2016 蚯蚓 智商题

由于D1爆炸,所以D2就没去想正解,只想着打暴力,于是又GG。首先可以想到优先队列,在外面记录delta。可以做到mlogm,但是m太大。 然后我又去想,q=0既蚯蚓不会变长的时候,切出来的两端蚯蚓分别是单调递减的。 一个不那么显然的事情,q!=0的时候这也是成立的(想一想就明白了,难受)。#include<iostream>#include<cstdio>#include<algorith

2016-12-20 16:16:58 837

原创 noip2016 换教室 期望+DP

考场一看见期望就怂了,于是去做第二题,做了两个多小时,没做出来。GG。 dp[ i ][ j ][0/1]表示前 i 节课申请 j 次的最小期望。然后[0]表示这次没申请,[1]表示已申请。 所以dp[i-1][j][1] 有f[i-1]的概率停在 d[i-1] 点,有(1 - f[i-1])概率停在c[i-1]点。 dp[i][j][0]=min dp[i-1][j][1] +dis[ d

2016-12-20 15:21:00 640

原创 bzoj2588 count on a tree 主席树

在树上建主席树,每个点以它的父亲节点作为历史版本。#include<iostream>#include<cstdio>#include<algorithm>#define maxn 200005using namespace std;struct E{ int to,nxt;}b[maxn<<1];int fst[maxn],tot=1;void build(int f,in

2016-12-20 07:44:58 463

原创 bzoj3524/2223 主席树

给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。#include<iostream>#include<cstdio>using namespace std;struct zxs{ int l,r,cnt;}tree[10000005];int t

2016-12-19 08:31:06 494

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除