
BZOJ刷题中
nixinyis
这个作者很懒,什么都没留下…
展开
-
【BZOJ 1180】OTOCI【LCT】&【树链剖分+并查集】
Description给出n个结点以及每个点初始时对应的权值wi。起始时点与点之间没有连边。有3类操作: 1、bridge A B:询问结点A与结点B是否连通。如果是则输出“no”。否则输出“yes”,并且在结点A和结点B之间连一条无向边。 2、penguins A X:将结点A对应的权值wA修改为X。 3、excursion A B:如果结点A和结点B不连通,则输出“impossibl原创 2017-05-07 16:22:14 · 477 阅读 · 0 评论 -
【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 · 491 阅读 · 0 评论 -
【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 · 413 阅读 · 0 评论 -
【meet in the middle】的几个例题【BZOJ 4800】&【SPOJ ABCDEF】
题目传送门Solution可以将原式子转化成ab+c=d(e+f)ab+c=d(e+f),用O(n3)O(n^3)来枚举,统计时自己手写一个二分查找(同map果断TLE) 还有,在枚举d时要保证d不为0,否则会WA,不知道为什么。Code#include<cstdio>#include<cstring>#include<algorithm>#define N 110#define rep(i原创 2017-04-09 10:01:14 · 877 阅读 · 0 评论 -
【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 · 344 阅读 · 0 评论 -
【莫队算法】的小例题
【BZOJ 2038】【2009 国家集训队】具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,他有多大的概率抽到两只颜色相同的袜子。当然,小Z希望这个概率尽量高,所以他可能会询问多个(L,R)以方便自己选择。 【题解】 对于L,R原创 2017-04-09 11:41:16 · 768 阅读 · 0 评论 -
【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 · 297 阅读 · 0 评论 -
【BZOJ 2141】排队【分块+Treap】
Description排排坐,吃果果,生果甜嗦嗦,大家笑呵呵。你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和。红星幼儿园的小朋友们排起了长长地队伍,准备吃果果。不过因为小朋友们的身高有所区别,排成的队伍高低错乱,极不美观。设第i个小朋友的身高为hi,我们定义一个序列的杂乱程度为:满足ihj的(i,j)数量。幼儿园阿姨每次会选出两个小朋友,交换他们的位置,请你帮忙计算出每次交换后,原创 2017-02-28 16:45:22 · 338 阅读 · 0 评论 -
【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 · 352 阅读 · 0 评论 -
【BZOJ 2946】【POI 2000】公共串【后缀数组】【裸】
Description给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: l 读入单词 l 计算最长公共子串的长度 l 输出结果Input文件的第一行是整数 n,1<=n<=5,表示单词的数量。接下来n行每行一个单词,只由小写字母组成,单词的长度至少为1,最大为2000。 Output仅一行,一个整数,最长公共子串的长度。题解今天遇到原创 2017-03-22 21:05:35 · 419 阅读 · 0 评论 -
【BZOJ 1015】【JSOI 2008】星球大战starwar【并查集】
Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠原创 2017-03-28 19:36:17 · 282 阅读 · 0 评论 -
【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 · 254 阅读 · 0 评论 -
【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 · 319 阅读 · 0 评论 -
【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 · 257 阅读 · 0 评论 -
【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 · 272 阅读 · 0 评论 -
【BZOJ 1854】【SCOI 2010】游戏【并查集 & 二分图匹配】
Descriptionlxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候原创 2017-03-11 16:50:39 · 340 阅读 · 0 评论 -
【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 · 394 阅读 · 0 评论 -
【BZOJ 3631】【JLOI 2014】松鼠的新家【树链剖分】
Description松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的。天哪,他居然真的住在“树”上。松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去a1,再去a2,……,最后到an,去参观新家。 可是这样会导致维尼重复走很多房间,懒惰的维尼不听地推辞。可是松鼠告诉他,每原创 2017-03-31 21:53:03 · 411 阅读 · 0 评论 -
【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 · 252 阅读 · 0 评论 -
【codeforces 559C】【51nod 1486】大大走格子【容斥】
Description一个棋盘,h*w,n个不能走的格子,从左上走到右下,求方案数。 (h,w < 100000,n < 2000)Solution 先将坏格排个序,然后考虑第i个坏格,用f[i]f[i]表示在不经过其他坏格的情况下,走到第i个坏格的方案数。 假如不存在坏格,从(1,1)(1,1)走到(n,m)(n,m)的共有C(n+m−2,n−1)C(n+m-2,n-1)种方法。原创 2017-04-06 16:45:07 · 376 阅读 · 0 评论 -
【BZOJ 4455】【ZJOI 2016】小星星【容斥+树型DP】
Description将一棵大小为n的树嵌入一个大小为n的图中,求方案数。(n<=18)Solution【官方题解】 :JudgeOnline/upload/201603/4455.txt【我的理解】: 我们先考虑将树中的点用图中的点来代替,因为共有18个点,每次枚举每个图中的点能不能用,即从图中取出一个点集SS,共有O(2n)O(2^n)种取法。然后我们求出在这个点集映射的树有多少的是合法的原创 2017-04-06 14:25:05 · 406 阅读 · 0 评论 -
【BZOJ 4710】【JSOI 2011】分特产【计数&容斥】
【前言】 时间所剩不多了,我来大力学点计数的姿势。。。 【题意】 m种特产,每种a[i]个,分给n个同学,要求:1、恰好分完。2、每个同学至少一个。求方案数。(n,m,a[i]<1000) 【题解】 先考虑就是将这么多特产分给n个人,分开来每一种特产,有a[i]个,分给n个人,用隔板法,答案是 C(a[i],n+a[i]-1)。所有的特产合起来就是这些值得乘积。 但是这样原创 2017-04-05 23:07:55 · 333 阅读 · 0 评论 -
【BZOJ 1049】【HAOI 2006】数字序列【DP】
【前言】这题我看题解都看了几天。。。Description 现在我们有一个长度为n的整数序列A。但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列。但是不希望改变过多的数,也不希望改变的幅度太大。Input 第一行包含一个数n,接下来n个整数按顺序描述每一项的键值。n<=35000,保证所有数列是随机的。Output 第一行一个整数表示最少需要改变多少个数。 第二行一个整数,表示在改原创 2017-04-05 15:32:45 · 349 阅读 · 0 评论 -
【BZOJ 3306】树【LCA、DFS序、线段树】
Description给定一棵大小为 n 的有根点权树,支持以下操作: 1、 换根 2、 修改点权 3、 查询子树最小值 Input 第一行两个整数 n, Q ,分别表示树的大小和操作数。 接下来n行,每行两个整数f,v,第i+1行的两个数表示点i的父亲和点i的权。保证f < i。如 果f = 0,那么i为根。输入数据保证只有i = 1时,f = 0。 接下来原创 2017-04-13 20:51:16 · 559 阅读 · 0 评论 -
【BZOJ 1513】Tet-Tetris 3D【二维线段树】
Description在新游戏中你将知道落下的立方体信息以及位置,你的任务就是回答所有立方体落下后最高的方块的高度.所有的立方体在下落过程中都是垂直的并且不会旋转.平板左下角坐标为原点,并且平行于坐标轴.Solution二维线段树板子题 同时两层树之间的信息不能相互传递。Code#include<cstdio>#include<cstring>#include<algorithm>#defin原创 2017-04-13 17:25:31 · 425 阅读 · 0 评论 -
【BZOJ 1130】【POI 2007】大都市meg【树链剖分】
Description 昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且,对于每个村庄,它到比特堡的路径恰好只经过编号比它的编号小的村庄。另外,对于所有道路而言,它们都不在除村庄以外的其他地点相遇。现在,越来越多的土路被改造成了公路。 Blue Mary想起了在改造期间她送信的经历。她从比特堡出发,需要去某个村庄,并且原创 2017-04-04 21:44:13 · 310 阅读 · 0 评论 -
【BZOJ 4491】我也不知道题目名字是什么【差分+线段树维护】
【前言】又来切水题了) -__-。。。Description给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串(n < 50000)Input第一行n,表示A数组有多少元素 接下来一行为n个整数A[i] 接下来一个整数Q,表示询问数量 接下来Q行,每行2个整数l,rOutput对于每个询问,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串原创 2017-04-03 20:21:48 · 706 阅读 · 0 评论 -
【BZOJ 4003】【JLOI 2015】城池攻占【可并堆】
Description小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。 这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi< i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1 到 m 的整数表示,其中第 i 个骑士的初始战斗力为 si,第一个攻击的城池为 ci。每个城池有一个防御值 hi,如果一个骑士原创 2017-04-12 16:01:43 · 377 阅读 · 0 评论 -
【BZOJ 3363】[Usaco2004 Feb]Cow Marathon 奶牛马拉松【树的直径】
【前言】储存一个小知识点 【题意】 告诉你农场的地图(该地图的描述与上题一致),请帮助约翰寻找两个最远农场间的距离. 【题解】 只需求树的直径即可。 从任意一点bfs,找到一个最远点,再从这个点bfs,找到的最远点就是直径。 通过分类讨论和反证法可以证明。原创 2017-04-03 12:27:39 · 783 阅读 · 0 评论 -
【BZOJ 1208】【HNOI 2004】宠物收养所【treap】|【STL】
好久没写treap,手都生了。Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养所的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养原创 2017-04-03 10:19:05 · 331 阅读 · 0 评论 -
【BZOJ 3555】【CTSC 2014】企鹅QQ【hash】
Description小Q定义,若两个账户名称是相似的,当且仅当这两个字符串等长且恰好只有一位不同。例如“Penguin1”和“Penguin2”是相似的,但“Penguin1”和“2Penguin”不是相似的。而小Q想知道,在给定的 个账户名称中,有多少对是相似的。 为了简化你的工作,小Q给你的 个字符串长度均等于 ,且只包含大小写字母、数字、下划线以及‘@’共64种字符,而且不存在两个相同的账原创 2017-04-02 23:08:15 · 378 阅读 · 0 评论 -
【BZOJ 4810】【YNOI 2017】由乃的玉米田【莫队+bitset】
Description给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ,这三个操作分别为操作1,2,3选出的这两个数可以是同一个位置的数Solution 一开始直接想到的是莫队,但莫队归莫队,怎么处理这三个操作呢?看看了大神题解,又听了一番同市神犇的指点,终于学会原创 2017-04-12 00:40:29 · 487 阅读 · 0 评论 -
【BZOJ 3626】【LNOI 2014】LCA【树链剖分】
Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。 (即,求在[l,r]区间内的每个节点i与z的最近公共祖先的深度之和)Input第一行2个整数n q。原创 2017-04-02 10:39:35 · 330 阅读 · 0 评论 -
【BZOJ 1503】【NOI 2004】郁闷的出纳员【treap】
DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,尤其是集体原创 2017-03-15 22:23:04 · 254 阅读 · 0 评论 -
【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 · 427 阅读 · 0 评论 -
【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 · 216 阅读 · 0 评论 -
【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 · 254 阅读 · 0 评论 -
【BZOJ 1029】【JSOI 2007】建筑抢修
Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修原创 2017-02-20 21:24:19 · 341 阅读 · 0 评论 -
【BZOJ 1055】【HAOI 2008】玩具取名【区间动规】
Description 某人有一套玩具,并想法给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。Input 第一行四个整数W、I、N、G。表示每一个字母能由几种两个字母所替代。接下来W行,每行两个原创 2017-03-01 14:59:51 · 313 阅读 · 0 评论 -
【BZOJ 1088】【SCOI 2005】扫雷mine
Description相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷。 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一原创 2017-02-19 23:15:28 · 269 阅读 · 0 评论