自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

L_0_Forever_LF的专栏

曾是一个OIer

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

原创 BZOJ3442: 学习小组

最小费用最大流 源连向每个学生流量为k,费用为-Fi 每个学生连向他能去的学习小组,流量为1,费用为0 每个学习小组的支出费用与参加的人数平方相关,所以拆边连向汇(类似石头剪刀布),拆出n条边代表参加的人数为1~n时增加的支出,因为最小费用,所以总是会先选小的边,比如第i条边,选的时候1~i-1一定已经流满了,那这时i的贡献为 C∗i2−C∗(i−1)2=C∗(2∗i−1)C*i^2-C*(

2017-04-27 10:23:11 538

原创 BZOJ4205: 卡牌配对

大胆使用渐进复杂度较高的算法… 最大流 要求至多1个属性互质即至少2个属性不互质 设立三类节点(a,b),(a,c),(b,c)代表这两项不互质,枚举a,b,c不互质的公共质因子,因为200以内质数不多,所以大概也就50*50*3个节点 然后每个节点和这三类节点,相符合的话就连边流量1,X类在左边,Y类在右边 源连X类流量1,Y连汇流量1code:#include<set>#includ

2017-04-27 10:11:18 486

原创 BZOJ4663: Hack

最小割 要求0-n-1的每一条路径上有且仅有一条被控制的边 正常情况下跑最小割,每条路上是只会割一条的,但是有些非正常情况 要不你们看这篇?这篇有图… 然后…我不知道为什么要这样建图,是怎么想的(有人会了告诉我一声?)…..但是这样建图是对的..因为它能避免所有非法情况… 只处理起点能到的点,最后答案超过inf即无解(终点在环内)code:#include<set>#include<ma

2017-04-27 09:53:27 483

原创 BZOJ3482: [COCI2013]hiperprostor

询问不多可以当单次询问做 对于一条A到B的路径,若上面有a条特殊边,他的长度就为ax+b 先将特殊边长视为0,求出f[x][t]表示A到t,走了x条特殊边的最短路 那么A->B=a*x+f[a][B],这些路径的长度对应平面上的若干条直线,a就是这些直线的斜率 如果不存在f[0][B]就有无限种可能值,因为没有上界 否则维护一个凸包就可以求出所有最短路的可能值了code:#include<

2017-04-27 09:29:00 877

原创 BZOJ2753: [SCOI2012]滑雪与时间胶囊

可以发现要求的是一个有向图的最小生成树 但这个有向图满足一个特性,即边都是从高的点连向低的点或相同高度的点 直接按无向图用kruskal之所以不行,是因为会出现下图情况 先访问了a->b,再访问c->b且此时c不在最小生成树中,那这条有向边本来无法拓展,但被当作无向边拓展了 于是考虑避免这种情况,先只处理起点能到达的节点,然后将边按终点高度第一关键字排序,边权为第二关键字排序,就可以避免

2017-04-27 09:12:24 815

原创 BZOJ2709: [Violet 1]迷宫花园

二分v(上下移动花费)的值,跑最短路验证code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>

2017-04-27 08:52:37 479

原创 BZOJ2039: [2009国家集训队]employ人员雇佣

经典最小割 先将所有收益E加到答案 源代表不雇佣,汇代表雇佣 每个点向汇连边流量为雇佣价格对于每对关系i,j之间, 如果两个都不雇佣,损失为2e 如果雇佣i不雇佣j,损失为fi(雇佣花费)+2e 如雇佣j不雇佣i,损失为fj+2e 两个都雇佣,损失为fi+fj于是源向i,j连边流量为ei,j i向j,j向i连边,流量为2ecode:#include<set>#include<map

2017-04-27 08:50:27 465

原创 BZOJ2007: [Noi2010]海拔

首先最优解一定可以是左上的一片区域海拔为0,右下的一片区域海拔为1 证明的话,如果有很多小数的话,对于一个海拔为小数的格子,他的海拔变成相邻的格子中的一个的海拔,一定不比原来劣,那么对于海拔相同的,连在一起的格子视为一个块,这个块的海拔若是小数,他仍然可以按上文的方式合并到其他块,最后只剩一块0和一块1(为什么0和1不能合并?能合并当然好但是题目规定了两个点的海拔)然后花费就来自于0和1的分界线,

2017-04-27 08:37:57 651

原创 BZOJ1927: [Sdoi2010]星际竞速

每个点到达恰好一次,相当于出度入度都为1 最小费用最大流 源连出度,入度连汇,费用0 源向入度点连边,费用为跳过去的花费 出度点向能到达的入度点连边,费用为走航道的花费 流量都为1code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<

2017-04-27 08:30:30 458

原创 BZOJ1221: [HNOI2001] 软件开发

经典餐巾问题 最小费用最大流 每天拆成两个点代表出入度,左边点出度代表每天用完的毛巾的去向,右边点入度代表每天毛巾的来源, 源向左边每个点连边流量为这一天用掉的毛巾,费用0, 左边的点i可以向右边的i+a+1连边流量inf,费用fA,i+b+1连边流量inf,费用fB,代表这天用完后的毛巾消毒后拿到这一天用, 每天用完的毛巾可以不消毒堆积到下一天,所以左边的点i向i+1连边流量inf,费用

2017-04-27 08:23:07 438

原创 BZOJ1237: [SCOI2008]配对

将两个数列排序后,可以发现对于序列A中的Ai,和他匹配的Bj满足abs(i-j)<=2 然后可以直接状压,f[i][j]表示匹配完第i个,Bi-1~Bi+2的状态 code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#inc

2017-04-27 08:15:57 520

原创 BZOJ3561: DZY Loves Math VI

∑ni=1∑mj=1lcm(i,j)gcd(i,j)\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)^{gcd(i,j)} ∑ni=1∑mj=1(ijd)d\sum_{i=1}^n\sum_{j=1}^m(ijd)^d ∑d=1dd∑n/di=1id∑m/dj=1jd∑D|(i,j)μ(D)\sum_{d=1}d^d\sum_{i=1}^{n/d}i^d\sum_{j=1}^{m

2017-04-27 08:03:56 553

原创 BZOJ3560: DZY Loves Math V

因为phi是积性函数,将a1,a2…an的质因子拆出来,分开计算再乘 对于一个质因子pipi,设他在a1,a2…an里的指数分别是u1,u2…un 那么有 ∑u1i1=0∑u2i2=0...∑unin=0φ(pi∑nj=0ij)\sum_{i_1=0}^{u1}\sum_{i_2=0}^{u2}...\sum_{i_n=0}^{un}\varphi(pi^{\sum_{j=0}^ni_j})

2017-04-27 07:43:30 518

原创 BZOJ3450: Tyvj1952 Easy

(x+1)2−x2=2x+1(x+1)^2-x^2=2x+1 维护前面连到i的期望后缀、答案、概率,通过上式可以得到新的答案,乘下个位置断开的概率贡献到答案code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<

2017-04-27 07:30:45 504

原创 BZOJ2822: [AHOI2012]树屋阶梯

Catalan数,质因数分解后高精乘单精code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>

2017-04-26 22:01:57 889

原创 BZOJ2749: [HAOI2012]外星人

因为phi满足积性函数,所以将x质因数分解后 φ(x)=∏φ(piki)\varphi(x)=\prod \varphi(pi^{ki}) 然后,考虑每次对x取phi,就相当于对每个pikipi^{ki}取phi, φ(piki)=piki−1(pi−1)\varphi(pi^{ki})=pi^{ki-1}(pi-1),当pi≠2pi≠2时,pi−1pi-1一定会分出至少一个2的质因子 而φ

2017-04-26 21:31:39 534

原创 BZOJ1923: [Sdoi2010]外星千足虫

这题是线性基吧,把这些方程组看成数在二进制下的表示,如果他们能异或出2^0,2^1~2^n-1,那么就是唯一解 bitset优化code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#inclu

2017-04-26 21:05:35 466

原创 BZOJ3729: Gty的游戏

树上的阶梯博弈,需要维护每个点子树内奇数层石子的异或和,因为兹瓷插入,所以用splay维护dfs序,每个节点开2个节点,子树内的点插入到这两点之间替罪羊树跑的飞快code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#includ

2017-04-26 19:48:01 639

原创 BZOJ3958: [WF2011]Mummy Madness

可以发现,你被抓住的时间满足二分性,因为若在时间x你被抓住了,那么对于任意时间y>x,木乃伊都一定能抓住你 那么二分这个时间,你能走到的地方是一个矩形,同时每个木乃伊能走到的地方也是一个矩形,扫描线扫一下,若整个矩形都被覆盖了就会被抓住code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#

2017-04-26 19:38:44 789

原创 BZOJ3307: 雨天的尾巴

线段树合并 在链的两端x,y各打上1个z的加标记,在LCA(x,y)打上1个z的减标记,在fa(LCA(x,y))打上1个z的减标记,每个节点和所有孩子的线段树合并就好了code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#i

2017-04-26 19:13:29 584

原创 BZOJ3306: 树

一开始随便找一个根建树 修改点权在dfs序上改 询问x的子树时,如果x是当前根p的父亲,设y为p的祖先中,x的孩子,那么x的子树就是整棵树除去y的子树范围,否则子树范围不变,在dfs序上找最小值code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#incl

2017-04-26 16:46:28 465

原创 BZOJ4828: [Hnoi2017]大佬

首先我们每一回合不选择苟活(刷水题)的话,我们能做的事和这是第几个回合无关 那我们肯定希望有尽量多的回合做苟活之外的事 先DP一下我们在存活的情况下,最多有多少个回合有空 然后这些回合里,我们可以打1,升级或发大招 然后…我们最多操作n次,C<=1e8(题解说)状态数是不多的 (用bfs+hash,实测100次时搜出的状态是700w+) 然后对于这m个大佬,每个可以O(n)O(n)判断这

2017-04-26 16:34:50 1377

原创 BZOJ3443: 装备合成

可以发现,装备的合成是一个树形结构 对于一次合成,新建一个点表示这两个装备合成后的装备,成为这两个装备的父亲(一定要新建因为要兹瓷询问某个装备被合成前的属性) 然后某个装备的某个属性就相当于问这个装备的子树中某个属性的最大值,线段树在dfs序上查找就行了,因为属性数不多,对每种属性开一棵线段树code:#include<set>#include<map>#include<deque>#in

2017-04-26 14:40:18 753

原创 BZOJ4229: 选择

Orz liaoliao 首先把时间轴翻转,把删边操作变成加边操作 然后处理原来就在的边和所有加边操作,建一棵生成树,非树边就先不建上去再处理原来就在的非树边和加的非树边及询问, 如果是加一条边,将它连接的两点的路径上所有点并在同一个并查集 如果是询问,两点在同一个并查集,就是Yes,否则No 正确性的话,因为如果这个询问之前这两点之间不存在两条路径,就算将这个询问之后的边提前建出来了,两

2017-04-26 09:36:43 631

原创 BZOJ4662: Snow

这题有个很重要的性质,即扫地工的区间两两互不包含 因为按编号递增时,Li严格递增,所以Ri也严格递增 那么每次清扫一个区间时,影响到的扫地工的编号是连续的一段 只是这个还是不能直接区间改,因为清扫这个区间,对于不同的扫地工影响是不同的 具体来说,比如Li都在这个清扫区间的扫地工,因为Li的不同,扫完这个区间对他们清扫区间的减少是不同的,但是,扫完后,他们的Li就相同了,Ri同理 这说明了什

2017-04-26 09:15:33 554

原创 BZOJ4170: 极光

将每个位置的位置定为x,graze值定为y 那么任意位置上出现过的任意数值就对应上了平面上的若干个点 每次询问和一个点的哈密顿距离 <= x的点的个数 将哈密顿距离转为切比雪夫距离(x,y)−>(x+y,x−y)(x,y)->(x+y,x-y) 和一个点切比雪夫距离 <= x的点对应平面上一个矩形 那么询问就变成了询问平面上一个矩形内的点的个数 用KD-tree或cdq都是兹瓷的code

2017-04-26 08:32:07 1033

原创 BZOJ4827: [Hnoi2017]礼物

题意大致是求这样一个柿子的最小值∑ni=1(Ai−Bj+k)2\sum_{i=1}^n(A_i-B_j+k)^2其中k是你定的,j是经过旋转后i的对应位置 然后画一下柿子 ∑ni=1((Ai−Bj)2+2k(Ai−Bj)+k2)\sum_{i=1}^n((A_i-B_j)^2+2k(A_i-B_j)+k^2) ∑ni=1(Ai−Bj)2+2k(∑ni=1Ai−∑ni=1Bi)+nk2\sum_

2017-04-26 08:22:59 811

原创 BZOJ4826: [Hnoi2017]影魔

为什么既2016hn的码农大战后2017的题还是这么考码力…第一天2题码力题对于区间里的数,他们两两之间有两种配对方式: 一种是当i,j之间的数的最大值< min(a[i],a[j])时,[i,j]这一对贡献p1 一种是当i,j之间的数的最大值在a[i],a[j]之间时,[i,j]这一对贡献p2不妨设a[i]< a[j](i有可能>j) 对于第一种配对,我们去枚举i,对于每个i,去找可以和他匹

2017-04-26 07:56:56 1711

原创 BZOJ3289: Mato的文件管理

每次询问区间[l,r]内相邻交换,排好序的最小交换次数 这个东西等于区间内的逆序对数 然后用莫队就行了,树状数组每次O(logn)O(logn)求出区间内比这个数大或小的数 总复杂度O(nn√logn)O(n\sqrt nlogn) code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>

2017-04-26 07:24:33 1020

原创 20170424模拟赛

今天没有菜醒所以就没爆零了?进考场很快的看完了题后吐槽liaoliao怎么把剧情改了(虽然我挺兹瓷的),四道题好像都没什么初步的想法,于是开始想T1 第一题的数据范围好像还是挺兹瓷一些比较玄妙的网络流的毕竟这东西我也不知道复杂度,想了一会感觉不会呀..我不会..恩那一定不是…然后把自己带入了兔子的角色…唉这..是个贪心吧…想了想好像很有道理,就先看第二题了 第二题对着部分分yy了一个*1000的

2017-04-25 10:46:34 564 1

原创 BZOJ3242: [Noi2013]快餐店

这是一个环套树 首先,要求距离最远的点最近,那么必然有至少2点到这个点距离相等(否则可以向距离最远的点移动),只要找最长的链,长度/2即答案 先求出每棵树的直径,树内的点到根的最远距离,最长的链有可能是某棵树的直径,否则就经过环,然后考虑从环上断开一条边,因为这条链不可能经过整个环,所以不断链上的边对答案是无影响的,枚举断开某一条边算最长链,取所有断边方案的最小值 断开某一条边的答案可以DP求

2017-04-23 21:16:52 961

原创 BZOJ2957: 楼房重建

楼房i被看见的条件是他和起点连线的斜率是1~i里最大的可以用线段树做 维护每个区间的ans,max 合并区间的时候, 左区间的ans是可以直接加的, 对于右区间,当左区间的max>右区间max时,整个区间被挡住,没有贡献 当左区间的max<右区间max时,需要递归下右区间找 递归过程中,带一个这个区间前方的斜率max, 当max<左子区间的max时,这个带下来的max对右子区间的贡献无

2017-04-23 20:35:25 499

原创 BZOJ2698: 染色

求出m次染色后被染成白色的格子个数的期望 相当于求每个格子被染白的概率,每个格子带权乘上他的概率,和就是期望 求一个格子m次被染白的概率,可以求1次被染白的概率p,1−(1−p)m1-(1-p)^m(1-m次都没被染的概率) 求一次被染白的概率,就是求有多少个不同的区间覆盖了这个格子,因为区间的总的种类数是易得的那么有多少个区间覆盖了一个格子,是可以用DP求的我做这题的时候zz了,写了一个树状

2017-04-23 19:51:51 509

原创 BZOJ2006: [NOI2010]超级钢琴

求和为前k大的长为L~R的区间的和将区间和转前缀和∑Ri=Lai=s[R]−s[L−1]\sum_{i=L}^Ra_i=s[R]-s[L-1] 右端点相同的区间放一起,以他们的区间和的最大值为代表值,把这些右端点放进一个堆里,取k次,每次取区间和最大的右端点出来,将它的左端点区间以最小的s[L-1]的L为界,分成两部分,求出这两部分s[L-1]的最小值,算出最大的区间放进堆里

2017-04-23 19:32:29 447

原创 20170418模拟赛

凌晨菜醒就有不好的预感,果然今天考试爆0了(爆0后还被chan老板等人D,到了第二天还在D我) 最近天天菜醒是怎么回事…进考场后..刚看完题面有人已经开始码了,瑟瑟发抖 想了一会,推了一下柿子觉得第一题好像可以做,但是不太好写,就先放着了 然后..第二题掉坑里了 一直在yy各种逆序对相关的做法,思路太死了 就这样过了差不多1个多小时,觉得时间不太够开始码第一题,突然发现取值不是一段是1个或

2017-04-19 09:49:52 392 1

原创 BZOJ3434: [Wc2014]时空穿梭

我们考虑怎么选取c个点满足有直线同时经过他们 设AiA_i表示第i个点,用向量bi=(x1,x2,x3...xn)b_i=(x1,x2,x3...xn)表示Ai+1A_i+1与AiA_i的差 由于每一维的vi(xi=pi+tvi)vi(xi=pi+tvi)是不变的,对于相邻的两个点,Δt\Delta t是相同的,所以任一向量bi=(x1,x2,x3...xn)bi=(x1,x2,x3...xn)

2017-04-15 07:47:56 1774

原创 BZOJ4330: JSOI2012 爱之项链

首先,要求有多少种不同的项链,需要先求出有多少种不同的戒指 m个彩色球状物,旋转后相同视为相同,R种颜色,是不是很眼熟(然而并不,为什么我看题的时候想的是可重复圆排...),没错这就是置换首先由burnside引理得种类数num=∑mi=1cimnum=\dfrac{\sum_{i=1}^mc_i}{m}(cic_i表示第i种置换下相同的方案数), 然后由polya得,num=∑mi=1Rgcd

2017-04-14 20:23:52 838 3

原创 BZOJ4332: JSOI2012 分零食

首先,因为糖果数M<=10000,最多分给前M个人,所以人数A>M的情况可以视为A=M来做 然后朴素的想法是一个DP,即f[i][j]表示前i个人得到j个糖果的欢乐程度乘积和,有f[i][j]=∑j−1k=1f[i−1][k]∗g(j−k)f[i][j]=\sum_{k=1}^{j-1}f[i-1][k]*g(j-k),其中g(i)g(i)表示一个人得到i个糖果的欢乐程度,这样直接DP是O(n3)

2017-04-14 19:22:52 866

原创 BZOJ4331: JSOI2012 越狱老虎桥

给出一个无向图,问在其中任意加入一条边后,删去最小的一条边使得图不连通,这条被删去的边权的最大值先缩环,因为环上的边不能砍 剩下的边按边权从小到大排序 从最小的边开始每条边考虑,如果他和之前边的并集在一条链上,那么一定有一种加边方案使得他们都在环上,这时他们都不能砍,所以ans一定不比他小 直到有一条边,和之前的边的并集不在一条链上,加入一条边一定不能使他们都在环上,这条边的边权即答案缩环后,

2017-04-14 16:52:16 1088

原创 BZOJ4602: [Sdoi2016]齿轮

我好像不太擅长控制精度…给出一些关系,判是否合法,于是考虑带权并查集直接用分数表达要高精度(还要约分什么的不太可做),于是可以考虑分解质因数 但其实,只有乘除运算,我们可以考虑用对数 然后控一下精度code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#in

2017-04-14 16:39:12 734

空空如也

空空如也

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

TA关注的人

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