自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

beginend

只要在路上,就没有到不了的远方

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

原创 bzoj 3522: [Poi2014]Hotel dfs

题意有一个树形结构的宾馆,n个房间,n-1条无向边,每条边的长度相同,任意两个房间可以相互到达。吉丽要给他的三个妹子各开(一个)房(间)。三个妹子住的房间要互不相同(否则要打起来了),为了让吉丽满意,你需要让三个房间两两距离相同。 有多少种方案能让吉丽满意? n≤5000分析一开始yy了一种dfs两边的方法,每个点要开一个大小为n的桶,结果发现被卡空间了。。。 其实可以对每个点为根的情况做一次

2017-04-28 12:09:17 438

原创 bzoj 1109: [POI2007]堆积木Klo LIS

题意  Mary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。每个积木上面都有一个数。Mary用他的所有积木垒了一个高塔。妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置。一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置。Mary决定从现有的高塔中移走一些,使得有最多的积木在正确的位置。请你告诉Mary她应该移走哪些积木。 (1<=n<=100000,1<=

2017-04-28 09:37:08 688

原创 bzoj 3007: 拯救小云公主 最小生成树

题意英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主。 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss。当英雄意识到自己还是等级1的时候,他明白这就是一个不可能完成的任务。 但他不死心,他在想,能不能避开boss去拯救公主呢,嘻嘻。 Boss的洞穴可以看成一个矩形,英雄在左下角(1,1),公主

2017-04-27 21:08:26 656

原创 bzoj 3531: [Sdoi2014]旅行 线段树+树链剖分

题意S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足 从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教, S国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信仰和他们相同的城市留宿。当然旅程的终点也是信仰与他相同的城市。S国政府为每个城市标定了不同的旅行评级,旅

2017-04-27 20:09:15 324

原创 bzoj 3576: [Hnoi2014]江南乐 分块+sg函数

题意首先给定一个数F,然后游戏系统会产生T组游戏。每一组游戏包含N堆石子,小A和他的对手轮流操作。每次操作时,操作者先选定一个不小于2的正整数M (M是操作者自行选定的,而且每次操作时可不一样),然后将任意一堆数量不小于F的石子分成M堆,并且满足这M堆石子中石子数最多的一堆至多比石子数最少的一堆多1(即分的尽量平均,事实上按照这样的分石子万法,选定M和一堆石子后,它分出来的状态是固定的)。当一个玩家

2017-04-27 10:17:22 413

原创 bzoj 4765: 普通计算姬 分块

题意给定一棵n个节点的带权树,节点编号为1到n,以root为根,设sum[p]表示以点p为根的这棵子树中所有节点的权 值和。计算姬支持下列两种操作: 1 给定两个整数u,v,修改点u的权值为v。 2 给定两个整数l,r,计算sum[l]+sum[l+1]+….+sum[r-1]+sum[r] N<=10^5,M<=10^5分析既然不能用数据结构来维护,那就只能上暴力分块了。 一开始的想法是

2017-04-27 08:32:37 742

原创 bzoj 4866: [Ynoi2017]由乃的商场之旅 莫队算法

题意给出一个长度为n的由小写字母组成的字符串,每次询问一个区间内有多少连续子串重新排列后可以得到一个回文串。 n,q<=60000分析恩我们考虑给每种颜色一个权值,那么一个连续子串可以组成回文串当且仅当其异或值为0或为某种颜色的权值。 知道这点我们就很好做了。 考虑用莫队。 维护一个桶,表示所有后缀的异或值。再设置一个总体异或值,表示桶内的元素都要异或上这个值,然后就可以O(26)O(26)

2017-04-26 19:40:33 915

原创 bzoj 3709: [PA2014]Bohater 贪心

题意在一款电脑游戏中,你需要打败n只怪物(从1到n编号)。为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值。任何时候你的生命值都不能降到0(或0以下)。请问是否存在一种打怪顺序,使得你可以打完这n只怪物而不死掉 1<=n,z<=100000分析%黄学长代码#include<iostream>#include<cstdio>#include<cstd

2017-04-25 20:55:04 541

原创 bzoj 4800: [Ceoi2015]Ice Hockey World Championship meet in the middle

题意有n个物品,m块钱,给定每个物品的价格,求买物品的方案数。 n<=40,m<=10^18分析傻逼题。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int N=4

2017-04-25 20:22:42 544

原创 bzoj 4476: [Jsoi2015]送礼物 二分答案+单调队列

题意给出n,k,l,r和序列a,要求从a中选一段连续的区间[i,j]出来,使得M(i,j)-m(i,j)/(j-i+k)最大。 M(i,j)表示[i,j]中的最大值,m(i,j)表示[i,j]中的最小值。 Ai< =10^8,N,K< = 50,000分析看到求平均就可以想到二分答案了。 设我们二分的答案为mid 那么对于所有的区间[l,r]显然有M(l,r)−m(l,r)r−l+k<=mi

2017-04-25 20:08:12 1118

原创 bzoj 4154: [Ipsc2015]Generating Synergy KDtree

题意给定一棵以1为根的有根树,初始所有节点颜色为1,每次将距离节点a不超过l的a的子节点染成c,或询问点a的颜色 T<=6,n,m,c<=10^5,1<=a<=n,0<=l<=n,0<=c<=c分析这题有个很巧妙的思路,就是把树上的每个点变成平面上的点,横坐标是dfs序,纵坐标是深度,那么修改就变成了矩形覆盖,查询的话就变成了单点查询。 直接上KDtree即可。代码#include<iostre

2017-04-25 16:39:44 434

原创 bzoj 4059: [Cerc2012]Non-boring sequences 线段树+扫描线

题意我们害怕把这道题题面搞得太无聊了,所以我们决定让这题超短。一个序列被称为是不无聊的,仅当它的每个连续子序列存在一个独一无二的数字,即每个子序列里至少存在一个数字只出现一次。给定一个整数序列,请你判断它是不是不无聊的。 1 <= n <= 200000分析首先求出ls[x]和nx[x]表示上一个和x相同的位置和下一个与x相同的位置。 然后显然x的贡献就是(ls[x],x],[x,nx[x])

2017-04-25 13:14:40 335

原创 bzoj 4870: [Shoi2017]组合数问题 动态规划

题意 1 ≤ n ≤ 10^9, 0 ≤ r < k ≤ 50, 2 ≤ p ≤ 2^30 − 1分析拿到题目就开始狂推式子,看了题解才发现原来是dp。 我们从直观上来理解我们要求的这个诡异的式子。 实际上就是要我们从nknk件物品里面选出若干件,使得其数量模k等于r的方案数。 显然的dp方程f[i,j]f[i,j]表示前i件物品拿了若干件使得其数量模k等于j的方案数。 那么显然有f[i,

2017-04-24 21:40:59 1702

原创 bzoj 4385: [POI2015]Wilcze doły 单调队列

题意给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0。 请找到最长的一段连续区间,使得该区间内所有数字之和不超过p。 1<=d<=n<=2000000,0<=p<=10^16,1<=w[i]<=10^9分析首先考虑没有机会时要怎么做,显然可以用双指针乱搞。 那加上了机会呢?显然也是可以双指针乱搞。 显然随着右端点不断递增,左端点是不递减的。考虑

2017-04-24 20:25:28 520

原创 bzoj 1941: [Sdoi2010]Hide and Seek KDtree

题意给出n个点,求每个点到最远点距离-到最近点距离(除自己之外)的最小值。 n<=500000分析直接用KDtree找每个点的最远点和最近点即可。 T了一晚上,因为把nth_element函数的位置放错了。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>us

2017-04-23 21:18:31 431

原创 bzoj 3924: [Zjoi2015]幻想乡战略游戏 动态树分治

题意给出一棵树,边有边权。每次操作要求修改一个点的点权d,然后求一个点p使得∑dis(p,i)∗d[i]\sum dis(p,i)*d[i]最小。 n,q<=100000分析实际上也就是动态维护整棵树的带权重心。考虑先建出分治树,每个点维护三个值sd[x]表示该点子树内的点权和,sv[x]表示该点子树内所有点到该点的带权距离,tofa[x]表示该点子树内所有点到其父亲的带权距离。这里的子树和父亲都

2017-04-22 17:06:50 382

原创 bzoj 4347: [POI2016]Nim z utrudnieniem 博弈论+动态规划

题意A和B两个人玩游戏,一共有m颗石子,A把它们分成了n堆,每堆石子数分别为a[1],a[2],…,a[n],每轮可以选择一堆石子,取掉任意颗石子,但不能不取。谁先不能操作,谁就输了。在游戏开始前,B可以扔掉若干堆石子,但是必须保证扔掉的堆数是d的倍数,且不能扔掉所有石子。A先手,请问B有多少种扔的方式,使得B能够获胜。答案对10^9+7取模。 1<=n<=500000,1<=d<=10,1<=a

2017-04-22 09:08:12 726

原创 bzoj 4864: [BeiJing 2017 Wc]神秘物质 splay

题意给一个序列,要求资瓷如下操作: merge x e 当前第 x 个元素和第 x+1 个元素合并,得到权值为 e 的新元素; insert x e 在当前第 x 个元素和第 x+1 个元素之间插入一个权值为 e 的新元素。 max x y 当前第 x 到第 y 个元素之间的任意子区间中区间极差的最大值; min x y 当前第 x 到第 y 个元素之间的任意子区间中区间极差的最小值。 n

2017-04-21 21:49:02 950

原创 bzoj 1029: [JSOI2007]建筑抢修 贪心+堆

题意小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。如果某个建

2017-04-21 19:36:22 785

原创 bzoj 3999: [TJOI2015]旅游 树链剖分+线段树

题意给一棵树,有点权。每次一个操作x y z表示询问从x出发走到y的路径上最大的a[i]-a[j](必须满足先到i再到j)。然后把路径上的点权加上z。 n,q<=50000分析一开始看的时候没啥思路,想了想发现如果用线段树维护的话是可以合并区间的。 那么我们只要用线段树维护两个值,一个是正着走的答案,一个是反着走的答案。查询的时候把路径拆成两条分别查询即可。代码#include<iostream

2017-04-21 16:33:34 444

原创 bzoj 4031: [HEOI2015]小Z的房间 矩阵树定理

题意给出一个n*m的方阵,一些格子是空地一些是柱子。格子间的邻边看做边,问空地的生成树数量。 n<=9分析权当省选前复习一波矩阵树定理了。一开始忘了行初等变换要让行列式换符号了。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace s

2017-04-20 20:43:22 314

原创 bzoj 1095: [ZJOI2007]Hide 捉迷藏 动态树分治+堆

题意有一棵树,每个节点上有一盏灯,一开始全是关的。要求资瓷两个操作 C x表示将x的灯的状态改变 G表示查询最远的两个关着的灯泡的距离。 n<=100000,m<=200000分析传说中的动态树分治啊~~我们先按照树分治的顺序建一棵新的树,也就是每个节点的父亲为他的上一个分治中心。 显然这棵树的深度不会超过logn。 然后我们在这棵树上每个节点维护两个堆: b:表示该节点的子树到达其父亲

2017-04-20 16:37:18 485

原创 bzoj 3747: [POI2015]Kinoman 线段树

题意共有m部电影,编号为1~m,第i部电影的好看值为w[i]。 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部。 你可以选择l,r(1<=l<=r<=n),并观看第l,l+1,…,r天内所有的电影。如果同一部电影你观看多于一次,你会感到无聊,于是无法获得这部电影的好看值。所以你希望最大化观看且仅观看过一次的电影的好看值的总和。 n,m<=1000000,w[i]<=1

2017-04-19 20:46:50 535

原创 bzoj 4010: [HNOI2015]菜肴制作 拓扑排序+堆

题意知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴。 ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1到N的顺序编号,预估质量最高的菜肴编号为1。由于菜肴之间口味搭配的问题, 某些菜肴必须在另一些菜肴之前制作,具体的,一共有 M 条形如“i 号菜肴‘必须’ 先于 j 号菜肴制作”的限制,我们将这样的限制简写为< i,j>。现在,酒店希望能求 出一个最优

2017-04-18 21:46:17 666

原创 bzoj 4475: [Jsoi2015]子集选取 数学

题意 1<=N,K<=10^9 答案模10^9+7输出分析这题答案就是2^(n*k)。什么?你问我为什么?找规律啊,打表啊,显然啊……恩其实这规律还是不难猜的。但我自己闲着无聊瞎yy了一个证明出来。 恩很容易发现集合里面的每一个元素是互不影响的,也就是说答案一定是w^n的形式(w表示一个元素组成满足题目的三角形的数量)。 那既然只要求一个元素,那就好办了。 我们设f[k]表示用一个元素组成

2017-04-18 19:21:29 884

原创 bzoj 4006: [JLOI2015]管道连接 斯坦纳树

题意该部门有 n 个情报站,用 1 到 n 的整数编号。给出 m 对情报站 ui;vi 和费用 wi,表示情 报站 ui 和 vi 之间可以花费 wi 单位资源建立通道。 如果一个情报站经过若干个建立好的通道可以到达另外一个情报站,那么这两个情报站就 建立了通道连接。形式化地,若 ui 和 vi 建立了通道,那么它们建立了通道连接;若 ui 和 vi 均 与 ti 建立了通道连接,那么 ui

2017-04-18 14:43:44 503

原创 bzoj 4003: [JLOI2015]城池攻占 左偏树

题意小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。 这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, 其中 fi 分析一开始的想法是倍增,据说可以过但是好麻烦。 看了题解发现原来可以用数据结构来做,就是像线段树合并那样从底下往上做,期间打打标记啥的就好了。 左偏树平衡树什么的都很资瓷啊。代码#include<io

2017-04-18 09:01:08 520

原创 bzoj 3930: [CQOI2015]选数 莫比乌斯反演+杜教筛

题意我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个。由于方案数较大,你只需要输出其除以1000000007的余数即可

2017-04-17 21:35:11 617

原创 bzoj 4827: [Hnoi2017]礼物 fft

题意有两个长度为n的序列,序列元素为[1,m]。 定义两个序列的差异值为∑ni=1(x[i]−y[i])2\sum_{i=1}^n(x[i]-y[i])^2 现在可以给第一个序列加上一个长度c,第二个序列可以任意旋转,问最小差异值。 n<=50000,m<=100分析如果不是在知乎上看到这题正解是fft的话我可能不会那么快就想到正解吧。。。 不过这题的确挺裸的。 把式子拆开就变成了∑ni=

2017-04-17 20:51:12 1636 1

原创 bzoj 3073: [Pa2011]Journeys 线段树优化建图+堆优化dij

题意Seter建造了一个很大的星球,他准备建造N个国家和无数双向道路。N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条建简直是不可能的!于是他以如下方式建造道路:(a,b),(c,d)表示,对于任意两个国家x,y,如果a<=x<=b,c<=y<=d,那么在xy之间建造一条道路。Seter保证一条道路不会修建两次,也保证不会有一个国家与自己之间有道路。 Seter好不容易建

2017-04-17 17:12:03 910

原创 bzoj 3456: 城市规划 NTT+多项式求逆

题意求出n个点的简单(无重边无自环)无向连通图数目。 你只需要输出方案数mod 1004535809(479 * 2 ^ 21 + 1)即可. n<=130000分析首先要知道递推式f[i]=2c2i−∑j=1i−1f[j]∗Cj−1i−1∗2C2i−jf[i]=2^{c_i^2}-\sum_{j=1}^{i-1}f[j]*C_{i-1}^{j-1}*2^{C_{i-j}^2} 如果不优化直接

2017-04-17 16:03:14 921

原创 bzoj 4815: [Cqoi2017]小Q的表格 分块+莫比乌斯反演

题意小Q是个程序员。 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理。每当小Q不知道如何解决时,就只好向你求助。为了完成任务,小Q需要列一个表格,表格有无穷多行,无穷多列,行和列都从1开始标号。为了完成任务,表格里面每个格子都填了一个整数,为了方便描述,小Q把第a行第b列的整数记为f(a,b),为了完成任务,这个表格要满足一些条件:(1)对任意的正整数a,b,都要

2017-04-14 17:00:00 1395

原创 bzoj 4503: 两个串 fft

题意兔子们在玩两个串的游戏。给定两个字符串S和T,兔子们想知道T在S中出现了几次,分别在哪些位置出现。注意T中可能有“?”字符,这个字符可以匹配任何字符。 S 长度不超过 10^5, T 长度不会超过 S。 S 中只包含小写字母, T中只包含小写字母和“?”分析真的没想到这种题还可以用fft来做。。。我们可以定义两个长度均为n的字符串的距离为∑ni=1(s1[i]−s2[i])2\sum_{i=1

2017-04-14 11:47:56 439

原创 bzoj 4443: [Scoi2015]小凸玩矩阵 二分答案+网络流

题意给出一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或同一列,求选出来的N个数中第K大的数字的最小值是多少。 1<=K<=N<=M<=250,1<=矩阵元素<=10^9分析一眼题。。。 把第k大变成第n-k+1小,二分答案,然后用网络流判断是否能在原图中找到k个点使得任意两点不在同一行同一列且都不大于二分值即可。代码#include<iostream>

2017-04-14 10:30:02 576

原创 bzoj 4753: [Jsoi2016]最佳团体 二分答案+树形dp

题意JSOI信息学代表队一共有N名候选人,这些候选人从1到N编号。方便起见,JYY的编号是0号。每个候选人都由一位编号比他小的候选人Ri推荐。如果Ri=0则说明这个候选人是JYY自己看上的。为了保证团队的和谐,JYY需要保证,如果招募了候选人i,那么候选人Ri”也一定需要在团队中。当然了,JYY自己总是在团队里的。每一个候选人都有一个战斗值Pi”,也有一个招募费用Si”。JYY希望招募K个候选人(J

2017-04-14 09:59:32 707

原创 bzoj 4033: [HAOI2015]树上染色 树形dp

题意有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。问收益最大值是多少。 N<=2000,0<=K<=N分析这题太强啦。。。 先附一波题解 就是我们设f[i,j]表示以i为根的子树内选了j个黑点后子树内两两同色点对的距离和的话显然没法转

2017-04-14 09:20:48 838

原创 bzoj 4817: [Sdoi2017]树点涂色 link cut tree+线段树+树链剖分

题意Bob有一棵n个点的有根树,其中1号点是根节点。Bob在每个点上涂了颜色,并且每个点上的颜色不同。定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色。Bob可能会进行这几种操作: 1 x: 把点x到根节点的路径上所有的点染上一种没有用过的新颜色。 2 x y: 求x到y的路径的权值。 3 x y: 在以x为根的子树中选择一个点,使得这个点到根节点的路径权值

2017-04-13 21:50:40 1098

原创 bzoj 4657: tower 最小割

题意Nick最近在玩一款很好玩的游戏,游戏规则是这样的: 有一个n*m的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需 要操纵炮塔攻击BETA狗们。 攻击方法是:对于每个炮塔,游戏系统已经给出它可以瞄准的方向(上下左右其中一个),Nick需要 选择它的攻击位置,每一个炮塔只能够攻击一个位置,炮塔只能够向着它的瞄准方向上的某个位置发 动攻击,当然炮塔也可以不

2017-04-13 16:34:47 850

原创 bzoj 4810: [Ynoi2017]由乃的玉米田 莫队算法+bitset

题意给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ,这三个操作分别为操作1,2,3选出的这两个数可以是同一个位置的数 定义c为每次的x和ai中的最大值,ai >= 0,每次的x>=2,n,m,c <= 100000分析考虑莫队,维护一个桶和两个bitset,一个

2017-04-12 13:31:34 372

原创 bzoj 4805: 欧拉函数求和 杜教筛

题意给出一个数字N,求sigma(phi(i)),1<=i<=N。 正整数N。N<=2*10^9分析同bzoj 3994代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const

2017-04-12 11:02:34 1003

空空如也

空空如也

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

TA关注的人

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