自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cyclization的小栈

就算艰难险阻,也要抛下杂念,疯狂冲刺

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

原创 【树链剖分】学习笔记

本文主要是对树链剖分算法的理解(很棒的一篇文章哦)包含例题:【HDU 3966】【SOPJ 375】Query on a tree 【BZOJ 1036】【ZJOI 2008】树的统计

2017-03-26 22:58:46 341

原创 线段树操作中的一些预判方法【UOJ 228】【codeforces 438D】

作为一个傻逼题,我……我竟然提交了n次!!!题意给出一个长度为 nn 的数列 AA,接下来有 mm 次操作,操作有三种:区间加,区间开方,区间求和。题解感觉很水。 网上大神们的博客里说,对于一次区间开根:  设最大值为maxn,最小值为minn,如果maxn-minn=sqrt(maxn)-sqrt(minn),就可以看成区间减法。(因为减小的值是一样的)  但是,我以为是在一开始判断一次

2017-03-24 20:33:37 523

原创 【点分治】的学习笔记和众多例题

包含点分治多道例题:【POJ 1741 & BZOJ 1468 & BZOJ 3365】【BZOJ 2152】【BZOJ 2599】【BZOJ 1316】很详细的一篇文章,20分钟教会你点分治。

2017-03-23 16:45:45 4516 3

原创 【BZOJ 4034】【HAOI 2015】树上操作【树链剖分】

Description有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。Input第一行包含两个整数 N, M 。表示点数和操作数。接下来一行 N 个整数,表示树中节点的初始权值。接

2017-03-31 23:28:15 228

原创 【BZOJ 3631】【JLOI 2014】松鼠的新家【树链剖分】

Description松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的。天哪,他居然真的住在“树”上。松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去a1,再去a2,……,最后到an,去参观新家。 可是这样会导致维尼重复走很多房间,懒惰的维尼不听地推辞。可是松鼠告诉他,每

2017-03-31 21:53:03 389

原创 【BZOJ 1969】【AHOI 2005】LANE 航线规划【离线、hash、并查集、树链剖分、线段树】

Description星际空间站的Samuel II巨型计算机经过长期探测,已经锁定了Samuel星系中许多星球的空间坐标,并对这些星球从1开始编号1、2、3……。 一些先遣飞船已经出发,在星球之间开辟探险航线。 探险航线是双向的,例如从1号星球到3号星球开辟探险航线,那么从3号星球到1号星球也可以使用这条航线。 例如下图所示: 在5个星球之间,有5条探险航线。 A、B两星球之间,如果某条航线不存

2017-03-31 19:26:10 364

原创 【BZOJ 1607】【Usaco2008 Dec】Patting Heads 轻拍牛头【筛一筛】

Description今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏. 贝茜让N(1≤N≤100000)头奶牛坐成一个圈.除了1号与N号奶牛外,i号奶牛与i-l号和i+l号奶牛相邻.N号奶牛与1号奶牛相邻.农夫约翰用很多纸条装满了一个桶,每一张包含了一个独一无二的1到1,000,000的数字. 接着每一头奶牛i从柄中取出一张纸条Ai.每头奶牛轮流走上一圈,同时拍打所有编号能整除在纸条

2017-03-30 21:23:25 320

原创 【BZOJ 2783】【JLOI 2012】树【STL-set】

题意第一行是两个整数N和S,其中N是树的节点数。 第二行是N个正整数,第i个整数表示节点i的正整数。 接下来的N-1行每行是2个整数x和y,表示y是x的儿子。输出格式:输出路径节点总和为S的路径数量。题解  因为求的路径都是从在包含根的一条链上,而且是从上往下。所以可以考虑直接dfs。记录元素前缀和。   比如搜到x,在set里面查询有没有s[x]-k,有的话ans++,然后继续往下dfs时插

2017-03-29 21:26:12 279

原创 【BZOJ 2724】蒲公英 &【BZOJ 2821】作诗【分块】

今天全是奇妙的分块大法。【BZOJ 2714】蒲公英给一个序列,求一个区间的众数。(强制在线) 【题解】 先分块。   设f[i][j]表示第i块到第j块总的众数。   然后每次对于一个询问[l,r],x到y已经知晓,答案只可能是l~x,y~r,和块x~y的众数之一,所以接下来要做的就是判断l~x和y~r中存不存在数字出现次数比块x到y众数出现更多的数。   不过怎么判断呢?可以先用vec

2017-03-29 20:20:41 325

原创 【BZOJ 1015】【JSOI 2008】星球大战starwar【并查集】

Description  很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠

2017-03-28 19:36:17 263

原创 【BZOJ 2243】【SDOI 2011】染色【树链剖分】

学会树链剖分后的一道练手题。>_<Description给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。题解 若是你还不会树链剖分,请看这里  本题可以直接上 树链剖分+线段

2017-03-28 16:40:22 237

原创 【BZOJ 3098】Hash Killer II【生日原理】

此题浑浑噩噩不知所措 如果你从n个数里随机选数,那么大约选根号n次就能选到一样的(当然选了n次还没碰上是因为RP太好了- -)。 叫什么“生日原理”代码#include<cstdio> #include<cstdlib> using namespace std; int main(){ printf("%d %d\n",100000,20); for(int

2017-03-24 14:40:40 457

原创 【BZOJ 2946】【POI 2000】公共串【后缀数组】【裸】

Description给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: l 读入单词 l 计算最长公共子串的长度 l 输出结果Input文件的第一行是整数 n,1<=n<=5,表示单词的数量。接下来n行每行一个单词,只由小写字母组成,单词的长度至少为1,最大为2000。 Output仅一行,一个整数,最长公共子串的长度。题解今天遇到

2017-03-22 21:05:35 383

原创 【BZOJ 3884】上帝与集合的正确用法【欧拉定理】&【剧毒题】

Description题解来自出题人的剧毒题解 代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int phi(int x){ int res = x; for(int i = 2;i*i <= x;i++) if(x % i == 0) {

2017-03-21 18:54:03 302

原创 【BZOJ 2435】【NOI 2011】道路修建【水题】

此题有我自己用的邻接表。注意!注意!注意!(以后写邻接表参考此文)

2017-03-20 20:45:07 339

原创 欧拉筛(线性筛)& 欧拉函数

今天又复习了一下欧拉筛法,在这做个笔记。欧拉筛(线性筛)一般情况下,有一种筛法叫埃什么什么的。是O(n log log n),非常接近于O(n),但也会有坑爹的出题人来个10000000故意卡你。原理这可能原理有点妙啊。设pr[i]为i最小质因子,然后从2开始计算如果pr[i]没有在前面得到,就说明i是质数,所以pr[i]=i,prime[++len] = i。对于i,枚举每一个不超过pr[i

2017-03-20 19:38:37 2000 1

原创 【BZOJ 4008】【HNOI 2015】亚瑟王【概率与期望DP】

Description本题中我们将考虑游戏的一个简化版模型。 玩家有一套卡牌,共 n张。游戏时,玩家将 n 张卡牌排列成某种顺序,排列后将卡牌按从前往后依次编号为 1 ~ n。本题中,顺序已经确定,即为输入的顺序。 每张卡牌都有一个技能。第 i 张卡牌的技能发动概率为 pi,如果成功发动,则会对敌方造成di点伤害。也只有通过发动技能,卡牌才能对敌方造成伤害。pi不会为 0,也不会为 1,即

2017-03-19 11:06:20 272

原创 【BZOJ 2733】【HNOI 2012】永无乡【treap启发式合并】

Description永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连 通的。现在有两种操作:B x y 表示在岛 x 与岛 y 之间修建一座新桥。Q x k 表示

2017-03-17 21:22:58 412

原创 【BZOJ 1503】【NOI 2004】郁闷的出纳员【treap】

DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,尤其是集体

2017-03-15 22:23:04 237

原创 【codeforces 734E】Anton and Tree【缩点+DP】

题目链接:codeforces 734E题目大意:来看题解的都是知道题目是什么意思的,我就不多嘴了。题解cf自题解已经非常清楚了。先缩点,再找出该树一条最长的直径d,答案就是(d+1)/2 为什么呐?? 假设树的直径是0,那么答案就是0吧。然后我们就可以看到这个事实: the tree diameter can’t be decreased more than by two per one pa

2017-03-14 22:54:30 308

原创 【POJ 2763】Housewife Wind【LCA】

题目链接:POJ-2763题目大意:一棵树,n个点,每条边有权值w[i],q个操作。 A:求u到v路径上权值之和 B:将第x条边的权值改为t (1<= n,q<= 10^5)题解先考虑图是一条链时,无论是查询还是修改,用BIT(树状数组)的话都可以在O(log n)内完成。 但是对于一棵树怎么搞呢?? 可以将树通过DFS访问的顶点顺序当做一条链。 这样就非常妙了,可以使用BIT做优化了。

2017-03-14 16:57:59 250

原创 【BZOJ 1864】【ZJOI 2006】三色二叉树【树型DP】

DescriptionInput仅有一行,不超过500000个字符,表示一个二叉树序列。Output输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色。题解一道树形dp题(类似《没有上司的舞会》) 对于求最大值f[i][0]表示i这个点不染绿色,i下面的子树最多能取多少个绿色的点 f[i][1]表示i这个点染了绿色,i下面的子树最多能取多少个绿色的点考虑每一个点 如果染

2017-03-12 15:35:40 233

原创 【BZOJ 3685】普通van Emde Boas树【treap】

Description设计数据结构支持: 1 x 若x不存在,插入x 2 x 若x存在,删除x 3 输出当前最小值,若不存在输出-1 4 输出当前最大值,若不存在输出-1 5 x 输出x的前驱,若不存在输出-1 6 x 输出x的后继,若不存在输出-1 7 x 若x存在,输出1,否则输出-1Input第一行给出n,m 表示出现数的范围和操作个数 接下来m行给出操作

2017-03-12 09:55:40 256

原创 【BZOJ 1854】【SCOI 2010】游戏【并查集 & 二分图匹配】

Descriptionlxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候

2017-03-11 16:50:39 322

转载 二分图最大匹配的König定理及其证明

讲的太好了,所以转一发转载自此:http://www.matrix67.com/blog/archives/116二分图最大匹配的König定理及其证明    如果你看不清楚第二个字母,下面有一个大号字体版本:二分图最大匹配的König定理及其证明    本文将是这一系列里最短的一篇,因为我只打算把König定理证了,其它的废话一概没有。    以下五个问题我可能会在以

2017-03-10 19:44:28 214

原创 【codevs 1993】草地排水【Dinic裸题】

本文纯粹保存Dinic的代码#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>using namespace std;struct edge{int to,cap,rev;};#define N 210#define inf 0x3fffffffvector<edge>

2017-03-09 23:44:22 266

原创 【BZOJ 1084】【SCOI 2005】最大子矩阵【DP & 分类讨论】

Description  这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。Input  第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值不超过32767)。Output  只有一行为k个子矩阵分值之和最大为多少。题解又题意可知,m非常小(<=2 !!!)

2017-03-09 23:41:15 283

原创 【BZOJ 1058】【ZJOI 2007】报表统计【Treap】

Description在最开始的时候,有一个长度为N的整数序列,并且有以下三种操作: INSERT i k 在原数列的第i个元素后面添加一个新元素k; 如果原数列的第i个元素已经添加了若干元素,则添加在这些元素的最后(见下面的例子) MIN_GAP 查询相邻两个元素的之间差值(绝对值)的最小值 MIN_SORT_GAP 查询所有元素中最接近的两个元素的差值(绝对值) 例如一开始的序列为 5

2017-03-08 22:02:11 429

原创 【BZOJ 1251】序列终结者【裸splay】

Description给定一个长度为N的序列,每个序列的元素是一个整数(废话)。要支持以下三种操作: 1. 将[L,R]这个区间内的所有数加上V。 2. 将[L,R]这个区间翻转,比如1 2 3 4变成4 3 2 1。 3. 求[L,R]这个区间中的最大值。 最开始所有元素都是0。题解splay还有什么好说的呢。(本文纯粹为了保存一个最适合自己的代码)代码

2017-03-07 21:30:24 404

原创 【BZOJ 2705】【SDOI 2012】Longge的问题【欧拉函数】

Description给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。题解这道题考虑每一种gcd的值会出现多少次,即n的每个约数会出现多少次。对于gcd(b,n)=a, gcd(b/a,n/a)=1,所以gcd=a的值就是φ(n/a), 所以对于n每个因子a,ans=Σphi(n/a)*a可以在sqrt(n)范围内枚举n的因子,并求出其欧拉函数值代码#include<cstdi

2017-03-07 20:19:35 202

原创 【BZOJ 1072】【SCOI 2007】排列perm【状压DP】&【STL】

Description  给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0)。例如123434有90种排列能被2整除,其中末位为2的有30种,末位为4的有60种。Input  输入第一行是一个整数T,表示测试数据的个数,以下每行一组s和d,中间用空格隔开。s保证只包含数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9.Output  每个数据仅一行,表示能被d整

2017-03-06 22:13:51 295

原创 【BZOJ 2431】【HAOI 2009】逆序对数列【DP+优化】

Description对于一个数列{ai},如果有iInput第一行为两个整数n,k。Output写入一个整数,表示符合条件的数列个数,由于这个数可能很大,你只需输出该数对10000求余数后的结果。Sample Input4 1Sample Output3 样例说明: 下列3个数列逆序对数都为1;分别是1 2 4 3 ;1 3 2 4 ;2 1 3 4; 100%的数据 n<=1000,k<

2017-03-05 15:07:48 227

原创 【codeforces 777E】Hanoi Factory【动态规划+线段树】

E. Hanoi Factorytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputOf course you have heard the famous task ab

2017-03-05 12:26:41 409

原创 【BZOJ 1858】【SCOI 2010】序列操作【区间线段树】

Descriptionlxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区间内的所有数全部取反,也就是说把所有的0变成1,把所有的1变成0 3 a b 询问[a, b]区间内总共有多少个1 4 a b

2017-03-05 12:08:10 257

转载 【BZOJ 1044】【HAOI 2008】木棍分割【DP+优化】

Description有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使得总长度最大的一段长度最小. 并将结果mod 10007。。。Input输入文件第一行有2个数n,m. 接下来n行每行一个正整数Li,表示第i根木棍的长度.Output

2017-03-02 19:18:06 218

原创 【BZOJ 1042】【HAOI 2008】硬币购物【DP+容斥】

Description  硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。Input第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s,其中di,s<=100000,tot<=1000Output  每次的方法数Sample Input1 2 5 10 2 3

2017-03-01 16:46:53 397

原创 【UVa 11300】&【BZOJ 1045】【HAOI 2008】推一发

Description  有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。Input  第一行一个正整数n<=987654321,表示小朋友的个数.接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.Output  求使所有人获得均等糖果的最小代价。Sample Input4 1 2 5 4Sample Output4题解详见白书

2017-03-01 15:40:20 224

原创 【BZOJ 1055】【HAOI 2008】玩具取名【区间动规】

Description  某人有一套玩具,并想法给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。Input  第一行四个整数W、I、N、G。表示每一个字母能由几种两个字母所替代。接下来W行,每行两个

2017-03-01 14:59:51 299

空空如也

空空如也

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

TA关注的人

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