自定义博客皮肤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

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

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

原创 bzoj 2424: [HAOI2010]订货 费用流

题意某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存量为零,第n月月底的库存量也为零,问如何安排这n个月订购计划,才能使成本最低?每月月初订购,订购后产品立即到货,进库并供应市场,于当月被售掉则不必付存贮费。假设仓库容量为S。 n<=50分析看的第一眼以为是dp,发现好像未必满足单调性,优化不懂。查了

2017-07-28 15:51:46 279

原创 bzoj 4484: [Jsoi2015]最小表示 拓扑排序+bitset

题意对于一个N个点(每个点从1到N编号),M条边的有向图,JYY发现,如果从图中删去一些边,那么原图的连通性会发生改变;而也有一些边,删去之后图的连通性并不会发生改变。JYY想知道,如果想要使得原图任意两点的连通性保持不变,我们最多能删掉多少条边呢?为了简化一下大家的工作量,这次JYY保证他给定的有向图一定是一个有向无环图 n<=30000,m<=100000分析如果我们单分析一条边在什么情况下会

2017-07-27 20:42:20 343

原创 bzoj 4080: [Wf2014]Sensor Network 随机化

题意给定平面内的n个点,选出一个点集S,使得S里的所有点两两之间欧几里得距离不超过d,问|S|的最大值以及S里的点都有哪些。若答案有多种,输出任意一个。 第一行两个整数n和d,分别表示烤鸭店数和老板给魔法炮的路费。 n<=100,d<=10000分析题意就是要找一个最大团。 正解貌似是二分图最大独立集。 居然还有随机化这种玄学的算法。。。看来是我孤陋寡闻了。 只要每次随机一个序列,然后按顺

2017-07-27 16:41:06 371

原创 bzoj 2741: 【FOTILE模拟赛】L 分块+可持久化trie

题意给出一个序列A,每次询问一段区间[l,r]内最大的连续异或和。强制在线。 n<=12000,m<=6000,A[i]<=maxint分析可以先预处理出前缀异或和,这样就变成了在区间内选两个数使其异或和尽量大。这个问题显然要用到可持久化trie。 我没有往分块上面想,但只要想到分块这题就很水了。 可以预处理出mx[i,j]表示第i块的开头到j这一段的答案,那么每次询问的时候找到第一个作为块开

2017-07-27 10:17:52 331

原创 bzoj 3551: [ONTAK2010]Peaks加强版 Kruskal重构树+可持久化线段树

题意同bzoj3545,题解,强制在线。分析一开始yy出了一种用可持久化线段树来维护可持久化的root数组,然后其他的就像离线那样,只是每次合并线段树的时候不改变原来两棵树的儿子,而是新建节点。恩理论上好像是可以的,但是懒得写。这题可以用一种叫Kruskal重构树的东西来搞,具体看PoPoQQQ大爷的题解。 大概就是说一开始新图中没有边,做小生成树的时候,每次加入一条新边(u,v,w),就在新图中

2017-07-26 17:00:16 787

原创 bzoj 1143: [CTSC2008]祭祀river 求最长反链:网络流

题意给出一个DAG,求一个最大的点集满足集合里面的点两两之间不能到达。 n<=100分析一个很详细的题解 vfk关于相关定理的证明 链:是一个点集,满足对于集合里面的任意两点u,v,要么能从u到达v,要么能从v到达u。 反链:是一个点集,满足对于集合里面的任意两点u,v,既不能从u到v,也不能从v到u。现在这题要求的就是最长反链。由定理最长反链=最小链覆盖(每个点至少被经过一次)可得,这题要

2017-07-26 10:48:54 553

原创 bzoj 3826: [Usaco2014 Dec]Cow Jog LIS

题意给出N头牛,每头牛有自己的初始位置及奔跑的速度。它们要跑T分钟,现在不希望他们的跑的过程中出现“撞车”即跑到同一个点上,因而要将道路分成若干个跑道,问至少要多少个跑道。 n<=100000分析设a[i]=p[i]+v[i]*T,那么问题就变成了用最少的递增子序列来覆盖a。有个结论就是最少递增子序列覆盖=最长不上升子序列,证明的话可以用最少链覆盖=最长反链也就是最大独立集来证。代码#includ

2017-07-26 09:56:05 464

原创 Codeforces 425 (Div. 2) D lca

题意给出一棵树,每次询问给出三个点a,b,c,要求从中选出一个点,使得另外两个点到这个点的公共路径尽量长。 n,q<=100000分析比赛的时候一开始想的是用lca瞎讨论一发,讨论得我意识模糊都没有搞出来,最后用树剖套线段树大力搞了一发,结果T了。。。如果切了这题的话估计rating可以升好多呢。 恩这题其实只要找出a,b,c两两lca中最深的那个,然后求其到a,b,c的距离的最大值就好了。

2017-07-25 10:47:55 327

原创 bzoj 3990: [SDOI2015]排序 dfs

题意小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中操作为将序列从左到右划分为2^{N-i+1}段,每段恰好包括2^{i-1}个数,然后整体交换其中两段.小A想知道可以将数组A从小到大排序的不同的操作序列有多少个,小A认为两个操作序列不同,当且仅当操作个数不同,或者至少一个操作不同(种

2017-07-24 16:22:40 219

原创 bzoj 4025: 二分图 cdq分治+并查集

题意神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。 n<=100000,m<=200000,T<=100000,1<=u,v<=n,0<=start<=end<=T。分析我们可以对时间进行cdq分治,然后用按秩合并的并查集来判断是否是二分图。 对于与当前区间交集不为空的边,如果该边

2017-07-22 16:34:19 398

原创 bzoj 3597: [Scoi2014]方伯伯运椰子 spfa判负环+分数规划

题意给出一张每条边都是满流的残余网络,每条边都有容量,费用,扩容费用和缩容费用。要求在不改变总流量且每条边仍然为满流的前提下求最大平均费用减少。 n<=5000分析我们把这张图看做是费用流的残余网络,那么如果这不是最小费用流,那么必然可以找到从某一个点开始最后回到它自己的增广路。 由于这题是求平均,有一个显然的结论就是我们只用增广一个负环。可以先分数规划一下,那么问题就变成了新图中是否含有负环。

2017-07-21 16:39:56 316

原创 bzoj 4546: codechef XRQRS 可持久化trie

题意给定一个初始时为空的整数序列(元素由1开始标号)以及一些询问: 类型1:在数组后面就加入数字x。 类型2:在区间L…R中找到y,最大化(x xor y)。 类型3:删除数组最后K个元素。 类型4:在区间L…R中,统计小于等于x的元素个数。 类型5:在区间L…R中,找到第k小的数。 n,x<=500000分析学吉司机的历史最值学到生无可恋,来刷道水题放松放松。 直接上可持久化trie

2017-07-21 13:23:40 270

原创 bzoj 4145: [AMPPZ2014]The Prices 状压dp

题意你要购买m种物品各一件,一共有n家商店,你到第i家商店的路费为d[i],在第i家商店购买第j种物品的费用为c[i][j], 求最小总费用。 1<=n<=100,1<=m<=16分析首先设状态f[i,s]表示到第i个商店,购买的状态为s时的最小花费。一开始想到枚举子集,但是会T。又想了一下,一开始想的是多设一维0/1表示是否在商店i买了物品,后来看了题解,发现有更好的办法。就是先让f[i,s]

2017-07-20 13:56:59 261

原创 bzoj 4144: [AMPPZ2014]Petrol spfa+最小生成树

题意给定一个n个点、m条边的带权无向图,其中有s个点是加油站。 每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油站可以补满。 q次询问,每次给出x,y,b,表示出发点是x,终点是y,油量上限为b,且保证x点和y点都是加油站,请回答能否从x走到y。 2<=s<=n<=200000,1<=m<=200000,1<=q<=200000分析感觉上比较巧妙的一道题(大爷们都说这是水题,可能是

2017-07-20 10:00:51 527

原创 bzoj 4423: [AMPPZ2013]Bytehattan 并查集

题意比特哈顿镇有n*n个格点,形成了一个网格图。一开始整张图是完整的。 有k次操作,每次会删掉图中的一条边(u,v),你需要回答在删除这条边之后u和v是否仍然连通。 n<=1500分析这题由于是网格图,所以肯定跟网格图的性质有关。 如果我们把每个方格看做一个点,考虑如果新删掉的边使这两个点不连通,则必然有这条边两侧的方格是联通的。这个只要画一下图就明白了。 直接并查集硬上即可。代码#incl

2017-07-19 21:31:54 256

原创 bzoj 2876: [Noi2012]骑行川藏 二分+拉格朗日乘数法

题意蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨。川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行前设定好目的地、同时合理分配好自己的体力是一件非常重要的事情。 由于蛋蛋装备了一辆非常好的自行车,因此在骑行过程中可以认为他仅在克服风阻做功(不受自行车本身摩擦力以及自行车与地面的摩擦力影响)。某一天他打算

2017-07-19 12:43:49 430

原创 bzoj 4756: [Usaco2017 Jan]Promotion Counting dsu on tree+树状数组

题意n只奶牛构成了一个树形的公司,每个奶牛有一个能力值pi,1号奶牛为树根。 问对于每个奶牛来说,它的子树中有几个能力值比它大的。 n<=100000分析直接上就好了。。。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std

2017-07-16 11:00:30 292

原创 bzoj 2658: [Zjoi2012]小蓝的好友(mrx) treap+扫描线

题意给出一个r*c的方格,其中有n个点被随机标记。求有多少个子矩阵满足其中至少有一个点被标记。 R,C<=40000,N<=100000,资源点的位置两两不同,且位置为随机生成。分析一道神题。 我们可以用总的子矩阵数量减去不包含任何资源点的子矩阵数量。那么我们现在就要求不包含任何资源点的子矩阵数量。 我一开始也想到了扫描线,但没想到用什么来维护答案。看了题解发现可以用treap。 我们可以一

2017-07-15 22:05:11 326

原创 bzoj 2407: 探险 最短路+构造

题意探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则:每个溶洞和其他某些溶洞有暗道相连。两个溶洞之间可能有多条道路,也有可能没有,但没有一条暗道直接从自己连到自己。参赛者需要统一从一个大溶洞出发,并再次回到这个大溶洞。 如果就这么点限制,那么问题就太简单了,可是举办方又提

2017-07-15 19:28:00 445

原创 bzoj 2405: 数字 数学

题意 L,R<=10^18,T<=20分析通过打表我们不难发现d(n)就等于n%9.我们考虑如何查询[1,R]之间的好数。 枚举d(x),若有d(x)*x<=R,则有x<=R/d(x),且x同时要满足x%9==d(x)。那么满足条件的x数量就等于R/d(x)/9.若R/d(x)%9>=d(x)则还要+1. 但我们不难注意到这还有一个数被重复统计的情况。例如36既可以表示成6*d(6)也可以表示

2017-07-15 15:23:35 468

原创 bzoj 2406: 矩阵 二分答案+上下界网络流

题意 N,M<=200,0<=L<=R<=1000,0<=Aij<=1000分析这题一看就觉得是网络流模型。。。问题在于如何建图。 首先我们二分答案,将其转化为判定性问题。 设矩阵A的第i行元素和为r[i],第j列元素和为c[j],若想满足当前答案,那么B的第i行的总和范围在[r[i]-mid,mid+r[i]],列同理。我们把每行看做一个点,每列看做一个点,构建二分图。原点向每个行点连边,上

2017-07-15 14:37:38 320

原创 bzoj 3916: [Baltic2014]friends hash

题意有三个好朋友喜欢在一起玩游戏,A君写下一个字符串S,B君将其复制一遍得到T,C君在T的任意位置(包括首尾)插入一个字符得到U.现在你得到了U,请你找出S. 2<=N<=2000001分析直接hash然后枚举位置就好。 注意题目要找的是本质不同的s,若s相同位置不同也只算一个。代码#include<iostream>#include<cstdio>#include<cstdlib>#in

2017-07-15 07:35:21 763

原创 bzoj 4098: [Usaco2015 Open]Palindromic Paths 动态规划

题意从n×n 的矩阵 左上角走到右下角会有一个长度 n+n+1的字符串,问有多少种走法使得路径字符串为回文? n<=500分析我们可以考虑从两个起点分别往副对角线上走。一开始想的是用四(五)维dp或用字符串hash之类的东西来统计方案数,后来发现不用那么麻烦。 设f[i,j,k]表示走了i步,起点开始往下走了j次,终点开始网上走了k次,那么直接枚举然后分别往两个方向转移就好了。代码#includ

2017-07-14 22:35:27 258

原创 bzoj 2281: [Sdoi2011]黑白棋 博弈论+动态规划+排列组合

题意小A和小B又想到了一个新的游戏。 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色。 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同。 小A可以移动白色棋子,小B可以移动黑色的棋子,他们每次操作可以移动1到d个棋子。 每当移动某一个棋子时,这个棋子不能跨越两边的棋子,当然也不可以出界。当谁不可以操作时,谁就失败了。 小A和小B轮流操作,现在小A先移

2017-07-14 20:22:48 944

原创 bzoj 4548: 小奇的糖果 双向链表+树状数组

题意有 N 个彩色糖果在平面上。小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果。求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的颜色。 N ≤ 100000,K ≤ 100000,T ≤ 3分析只考虑在线段下方的情况。 首先很显然的思路就是枚举哪一种颜色不选。那么现在有两种情况:一种是一个点和在它下方的前驱和后继围成的矩形;一种是两个相邻点之间的那一部分矩形。 那么我们可以

2017-07-14 16:24:15 270

原创 bzoj 4547: Hdu5171 小奇的集合 矩阵乘法

题意有一个大小为n的可重集S,小奇每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大值。(数据保证这个值为非负数) n<=10^5,k<=10^9,|ai|<=10^5。答案对10000007取模。分析显然是每次找集合中最大的两个元素相加。先找到最大的两项k1,k2,若一项为负则往后推一项。可以发现集合中加入的第i个数中k1的系数为斐波那契数列第i项,k2系数为

2017-07-14 11:59:37 432

原创 Alphadog 回文树+lct

题意 sig=1表示强制在线。分析真是一道神题。 首先可以对该字符串建立回文树,那么两个前缀的lcp就是其分别对应回文树上的节点的lca。那么问题就变成了动态维护每个前缀在回文树上对应的点两两之间lca的长度和。 设len[i]表示回文树第i个节点对应回文串的长度,size[i]表示有多少个前缀对应这个节点。那么答案就是∑szi=1∑szj=isize[i]∗size[j]∗len[lca(

2017-07-13 21:11:51 432

原创 第一类斯特林数求自然数幂和学习小记

目标求∑i=1nik\sum_{i=1}^ni^k前置技能第一类斯特林数s(n,m)s(n,m)定义为有n个人,编号分别为1-n,排成m个循环排列的方案数。 递推式:s(n,m)=s(n−1,m−1)+(n−1)∗s(n−1,m)s(n,m)=s(n-1,m-1)+(n-1)*s(n-1,m) 证明:若第n个人自己排成一个循环排列,则方案数为s(n−1,m)s(n-1,m);若第n个人加入到原来

2017-07-13 07:48:15 2223

原创 bzoj 3170: [Tjoi 2013]松鼠聚会 计算几何

题意给出n个点,求所有点走到其中一个点的最小切比雪夫距离。切比雪夫距离定义为横纵坐标差的较大值。 n<=100000,-1e9<=xi,yi<=1e9分析由于切比雪夫距离不好维护,我们考虑是否能将其转化成曼哈顿距离。 若把所有点的坐标由(x,y)变为(x+y,x-y),则原来的曼哈顿距离就等于现在的切比雪夫距离。同理,把所有点的坐标由(x,y)变为((x+y)/2,(x-y)/2),则原来的切比

2017-07-12 14:53:34 324

原创 bzoj 4724: [POI2017]Podzielno 数学

题意B进制数,每个数字i(i=0,1,…,B-1)有a[i]个。你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要 用完所有数字),使得X是B-1的倍数。q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位)。 B(2<=B<=10^6),q(1<=q<=10^5)。k(0<=k<=10^18)分析有一个结论,就是一个数能被B-1整除当且仅当这个数在B进制下的每一位的和能被

2017-07-12 11:04:32 289

原创 bzoj 1559: [JSOI2009]密码 AC自动机+状压dp

题意给出n个字符串,求有多少个长度为L的字符串满足每个字符串出现至少一次。字符串仅由小写字母组成。 若方案书<=42的输出方案。 n<=10,L<=25,字符串长度<=10分析首先把重复和被包含的字符串去掉,建立AC自动机。 设f[i,j,k]表示在AC自动机上走了i步,走到第j个点,n个字符串的出现情况为k(k为n位二进制)的方案数。直接枚举转移即可。 输出方案数的话,注意到若字符串的某一

2017-07-11 16:14:49 828 2

原创 bzoj 1797: [Ahoi2009]Mincut 最小割割边存在条件

题意给出一个有向图,问哪些边一定存在最小割中,哪些边可能存在于最小割中。 n<=4000,m<=60000分析首先对原图跑最大流,得到残余网络。 很容易得知若一条边u->v存在u->v的增广路,则这条边一定不是割边,反之亦然则可能是割边。 那么我们就把点分成了s集和t集还有一部分不确定。若一条边连接了s集和t集,则这条边一定是必然存在度最小割中的边。那么我们就得到了这样一个算法: 把残余网络

2017-07-11 11:05:46 386

原创 bzoj 4530: [Bjoi2014]大融合 lct维护子树信息

题意给你n个点,要求资瓷以下操作: A x y连接x和y。 Q x y询问x所在的树上有多少条简单路径经过x到y这条边。 n,m<=100000分析lct维护子树信息 这题显然是要动态维护每个点的size。 考虑如何用lct维护子树大小。 定义siz[x]表示x的所有虚儿子的子树大小和,size[x]表示x的所有虚儿子+实儿子+自己的子树大小和。那么只要在虚实边变化的时候维护一下siz的

2017-07-11 10:05:54 1067

原创 bzoj 1758: [Wc2010]重建计划 长链剖分+线段树

题意有一棵树,每条边有边权。请找一条长度为[L,R]之间的简单路径,使得这段路径的平均长度最大。 n<=100000,vi<=1000000分析很显然是先二分答案然后找树上长度在[L,R]之间的最长链。正解是点分治+单调队列,由于我刚学习了一波长链剖分,便拿这题来练练手。 关于长链剖分 长链剖分有两个作用:一是O(nlogn)预处理后O(1)查询一个点的第k级祖先。二是O(n)维护每个子树以深

2017-07-11 08:30:29 490

原创 bzoj 4869: [Shoi2017]相逢是问候 数论+线段树

题意给出一个序列a,模数p和一个常数c,要求资瓷两个操作: 0 l r表示把l<=i<=r的a[i]变为ca[i]c^{a[i]} 1 l r表示查询a[l..r]的和。 n,m<=50000,a[i],c,p<=10^9分析首先这题要用到欧拉定理EXT:当x>=φ(p)时有cx≡cxmodφ(p)+φ(p)当x>=\varphi(p)时有c^{x}\equiv c^{x\bmod\va

2017-07-09 22:18:38 534

原创 bzoj 2324: [ZJOI2011]营救皮卡丘 费用流,最小路径覆盖DAG

题意:给一个无向图,一开始有k个人在0点。在经过编号小的点之前不能经过编号更大的点,问最少走多少路才能使得至少有1人到达n点。n分析:一开始想的是动态加边和点,然后发现这样子会挂。其实可以先预处理出f[i,j]表示i走到j且不经过编号大于max(i,j)的点的最短路径。那么这样就变成了一个DAG。现在要求的是要用不超过不相交k条路径覆盖这个DAG且权值和最小。

2017-07-09 15:43:02 285

原创 bzoj 4868: [Shoi2017]期末考试 三分答案

题意:有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布。第i位同学希望在第ti天或之前得知所.有.课程的成绩。如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生C不愉快度。对于第i门课程,按照原本的计划,会在第bi天公布成绩。有如下两种操作可以调整公布成绩的时间:1.将负责课程X的部分老师调整到课

2017-07-09 14:23:54 1182

原创 bzoj 3714: [PA2014]Kuglarz 最小生成树

1

2017-07-07 22:09:02 349

原创 bzoj 2369&2687: 区间 cdq分治+决策单调性

1

2017-07-07 22:08:30 917

原创 bzoj 3218: a + b Problem 最小割+可持久化线段树

1

2017-07-07 22:07:26 306

空空如也

空空如也

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

TA关注的人

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