- 博客(26)
- 收藏
- 关注
原创 bzoj 3155 Preprefix sum 树状数组
非常神奇的题目啊,我语文不好,所以不写题解了。#include<iostream>#include<cstdio>#define LL long longusing namespace std;int n,m;LL a[100005];LL c[100005];void change1(int x,LL d){ while(x<=n) { c[x]+=
2016-09-29 11:14:10 432
原创 bzoj 3098 Hash Killer II 生日悖论
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int Rand(){ int r=rand()<<16; r=r|rand();}int main(){ srand(790); int n=100000; int l= Rand()%n+1;
2016-09-29 10:07:43 691
原创 bzoj 3039 玉蟾宫 单调栈
。#include<iostream>#include<cstdio>#include<stack>using namespace std;int mp[1005][1005];char c[2];int h[1005][1005];stack<int> S;int main(){// freopen("jademoon.in","r",stdin);// freopen(
2016-09-29 10:04:53 762
原创 bzoj 3223 文艺平衡树 Splay
Splay维护区间翻转裸题,但还是调了很长时间。#include<iostream>#include<cstdio>#define maxn 100005using namespace std;int rev[maxn],fa[maxn],ch[maxn][2];int sz[maxn];int root;bool dir(int x){return x==ch[fa[x]][1];
2016-09-29 10:00:32 384
原创 bzoj 2002 弹飞绵羊 LCT
先吐槽一句,这题分块比LCT快是什么鬼,LCT常数是有多大。LCT1.8s,分块总耗时1.6s。 主要思路:link(i,i+a[i]);弹出去的都连向节点n+1; 每次修改cut,link。查询是 以n+1为根,access(x),splay(x),x的子树大小,就是x点向后弹的节点数。#include<iostream>#include<cstdio>#include<algorithm
2016-09-28 19:04:35 429
原创 2015noipT3 斗地主 暴力模拟
#include<iostream>#include<cstdio>#include<queue>#include<algorithm>using namespace std;int a[20];struct joker{ int p[20]; int ans; void print() { for(int i=0;i<=14;i++)
2016-09-28 17:04:04 903
原创 bzoj 1180 [CROATIAN2009]OTOCI - LCT
20分钟码完,手速++; 不过这道题正解是LCT吗,感觉很奇怪啊。#include<iostream>#include<cstdio>#define maxn 30005using namespace std;int fa[maxn],ch[maxn][2],rev[maxn];int sum[maxn],v[maxn];bool dir(int x){return x==ch[fa
2016-09-28 11:29:24 366
原创 LCT学习笔记
动态树问题: 动态加边,删边,始终保持是一棵或多棵树。 支持换根,修改点、边、路径权值(等信息),查询路径权值等。思想:把树分成若干个部分维护。和树链剖分相似,树链剖分的一些题目也可以用LCT来做。LCT的均摊复杂度是log²n,杨哲的论文(百度搜一下,%大神)有证明,但我太弱,看不懂,也不想研究……一些定义: access(x) :访问x,这个操作是LCT关键; Preferred ch
2016-09-28 10:41:48 682 2
原创 bzoj 2631 tree LCT+标记处理
这个题目名字好大众啊。 从昨天下午开始码,刚调出来。 由于LCT常数很大,一定要丧心病狂的优化常数,非常管用。#include<iostream>#include<cstdio>#define LL unsigned int#define P 51061#define maxn 200005using namespace std;int n,q;int fa[maxn],ch[ma
2016-09-28 08:15:00 428
原创 bzoj 3282 Tree 动态树LCT
学了一天LCT,还是不太明白,打(抄)了一个模板,先存着。#include<iostream>#include<cstdio>#include<algorithm>#include<stack>#define maxn 300005using namespace std;inline void read(int &a){ a=0;char c=getchar(); wh
2016-09-27 15:30:30 481
原创 bzoj 3196 二逼平衡树 树套树
都是泪,调了一晚。代码能力++。 查询区间排名k,时间复杂度nlog³n,bzoj能A,但是tyvj TLE 两个点,求各路大神指错打脸。 另外推荐一个OJ cojs.tk 给数据,很良心。#include<iostream>#include<cstdio>#include<algorithm>#include<stack>#define maxn 1000005//#
2016-09-26 21:45:41 438
原创 bzoj 1208 宠物收养所 Splay
我当时脑子一抽,用map查一个数值的编号,多一个log,貌似不影响AC。#include<iostream>#include<cstdio>#include<map>using namespace std;map<int,int> bh;int fa[80005],ch[80005][2];int sz[80005],key[80005];int t1,t2;int inf=2147
2016-09-26 17:22:17 504
原创 bzoj 1067 降雨量 线段树
用线段树维护区间最大,用map搞一搞判断,和离散化差不多,我语文不好。#include<iostream>#include<cstdio>#include<map>#include<algorithm>using namespace std;map<int,int> mp;int ni[50005];struct xds{ int l,r,sum; int num,m
2016-09-26 17:18:47 385
原创 bzoj 1066 蜥蜴 最大流
套路拆点,把石柱高度作为出点入点之间流量,最大流。#include<cstdio>#include<iostream>#include<queue>#include<algorithm>using namespace std;struct bian{ int to,cap,nxt;}b[64005];int fst[1005],tot=1;int cur[1005];voi
2016-09-26 17:14:06 392
原创 bzoj 1012 最大数 线段树 || 分块
线段树提前开20w个点建树就可以直接修改。#include<iostream>#include<cstdio>#define LL long longusing namespace std;struct xds{ int l,r; LL ma;}tree[800005];void build(int dq,int l,int r){ tree[dq].l=l;
2016-09-26 17:10:34 353
原创 bzoj 1008 越狱 快速幂
#include<iostream>#include<cstdio>#define LL long longusing namespace std;LL k;LL ksm(LL x,LL y){ if(y==0) return 1; if(y==1) return x; LL a=ksm(x,y/2)%k; if(y%2)
2016-09-26 17:07:33 412
原创 bzoj 1003 物流运输 DP+Spfa
一看到题目,吓了一跳,看到数据范围…… spfa(j,i)表示第j天到第i天可用点的最短路。 spfa(i,j) if(j!=0)dp[i]=min(dp[i],dp[j]+(i-j)*dis[m]+k); else dp[i]=min(dp[i],dp[j]+(i-j)*dis[m]);#include<cstdio>#include<iostrea
2016-09-26 17:05:17 575
原创 bzoj 2733 永无乡 Splay 启发式合并
题目大意:n(n<=10w)个点,每个点都有重要度,q(q<=30w)个操作。1.每次连接2个点。2.查询a,k;与a相连的第k重要是哪一个点,不存在输出-1。 查询可以Splay搞,修改暴力启发式合并,因为每次合并size翻倍,所以每个点最多被合并logn次。复杂度nlog²n。#include<cstdio>#include<iostream>#include<cstdlib>#defi
2016-09-24 15:17:05 759 1
原创 bzoj 2002 弹飞绵羊 分块(水)
这道题正解是LCT吗,不理解,用分块水的。#include<iostream>#include<cstdio>#include<cmath>#include<cstdlib>using namespace std;int a[200005];int b[200005];int c[200005];int inf=214748;int ask(int x){ int ans
2016-09-22 21:50:24 584
原创 bzoj 2330 糖果 差分约束
#include<iostream>#include<cstdio>#include<queue>using namespace std;struct bian{ int to,d;}b[1120005];int fst[120005],nxt[1120005],tot=1;long long dis[120005],inf=214748364;void build(int
2016-09-22 21:45:32 328
原创 bzoj1911 特别行动队 斜率优化
斜率优化最裸的裸题,但是式子推了好久,忘了形式。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define LL long longusing namespace std;LL dp[1000005];LL s[1000005];LL a,b,c;LL p(LL x){ retur
2016-09-21 21:16:19 371
原创 bzoj 1007 水平可见直线 贪心+初中数学
在xoy直角坐标平面上有n条直线L1,L2,…Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的,否则Li为被覆盖的. 例如,对于直线: L1:y=x; L2:y=-x; L3:y=0 则L1和L2是可见的,L3是被覆盖的. 给出n条直线,表示成y=Ax+B的形式(|A|,|B|<=500000),且n条直线两两不重合.求出所有可见的直线.对
2016-09-13 19:18:11 471
原创 bzoj4034 HAOI2015 T2 树链剖分
有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。这道题不会正解,树链剖分水过。 因为我太弱,LL和int ;%lld和%I64d没分清,调了一晚。#includ
2016-09-05 19:00:45 356
原创 CF #368 D Persistent Bookcase 操作树~?
Recently in school Alina has learned what are the persistent data structures: they are data structures that always preserves the previous version of itself and access to it when it is modified. Afte
2016-09-04 20:32:16 440
原创 bzoj 4518 征途 斜率优化
我想写题解,可我语文不好。#include<cstdio>#include<cstring>#include<iostream>using namespace std;int sum[3002],f[3002][3002];int n,m,head,tail,a;int q[3002];double get(int i,int x,int y){ return ((doubl
2016-09-02 21:17:36 305
原创 poj3281 Dining 最大流
模板#include<iostream>#include<cstdlib>#include<queue>#include<cstdio>#include<cstring>using namespace std;queue<int> q;struct Edge{ int to,cap;}b[20005];int fst[505],nxt[20005],tot=1;int
2016-09-02 21:03:24 339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人