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

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

原创 BZOJ2793: [Poi2012]Vouchers

调和级数:∑ni=1ni\sum_{i=1}^n\frac n i是nlognnlogn级别的 所以对于每个x,记录当前拿到了哪里,每组人来直接拿 因为拿到10^6就可以不拿了,所以不会很慢 时间复杂度O(nlogn)code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include

2017-02-18 11:14:03 730

原创 BZOJ2792: [Poi2012]Well

先二分z 然后将序列调整成相邻数字的差都不超过z 计算对于每个位置i将它调成0,维护序列需要的操作次数,比如计算左侧的贡献,用j表示最左一个点不满足abs(a[i]-a[j])<=(i-j)*z,随i的增加j单调递增,且因为之前已经将序列调整过使得相邻数字差不超过z,所以可以O(1)算出j~i调整的操作次数,对于右侧点类似code:#include<set>#include<map>#inc

2017-02-18 11:09:44 547

原创 BZOJ2791: [Poi2012]Rendezvous

这是很多个环套树,然后理解了题意lca+乱搜什么的…code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cs

2017-02-18 10:56:00 863

原创 BZOJ2790: [Poi2012]Distance

可以对每个Ai的所有约数xi求它到Ai的距离,然后被枚举的所有数维护他到Ai的最小值和次小值,然后对每个Ai求Aj的时候就可以枚举它的约数,如果最小值i和j重复就询问次小值code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#i

2017-02-18 10:43:35 365

原创 BZOJ2789: [Poi2012]Letters

一个很眼熟的贪心 首先一个序列对他编好号后,末状态编号的逆序对数就是交换相邻2个达到这个状态需要的最少次数 将A序列1~n编号,再对B序列按顺序每个字母赋这个字母有的所有编号里最小的这样能使得逆序对数最少,然后求B的逆序对数code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#inclu

2017-02-18 10:40:05 656

原创 BZOJ 2788: [Poi2012]Festival

差分约束,对于Xa+1=Xb这样的限制连正向反向两条边限制 跑一次Floyd,有负环则无解 然后强联通缩点,不同联通分量答案互不影响,对于一个联通分量,他的答案数是最远点对之间的最短距离+1,然后加起来code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#

2017-02-18 10:24:53 445

原创 BZOJ 2301: [HAOI2011]Problem b

首先对于a≤x≤b,c≤y≤da≤x≤b,c≤y≤d 这样的限制,可以容斥一下,转换成1≤x≤n1≤x≤n这样 设N=⌊nk⌋,M=⌊mk⌋N=\lfloor \dfrac n k \rfloor ,M=\lfloor \dfrac m k \rfloor ∑ni=1∑mj=1,(i,j)=k1−>\sum_{i=1}^n\sum_{j=1,(i,j)=k}^m1-> ∑Ni=1∑Mj=1[(

2017-02-18 10:11:39 766

原创 BZOJ 3175: [Tjoi2013]攻击装置

这是一个二分图(其实怎么证这是个二分图…),求最大独立集=n-最大匹配code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#i

2017-02-18 09:56:35 542

原创 BZOJ 3174: [Tjoi2013]拯救小矮人

不会做,看了各种题解都不理解后来看这篇看懂了,这篇我觉得是我看的写的最好的了,关键就是最后小矮人跑出去的序列一定是一个身高+臂长递增的序列(意会一下?),所以按这个排序是为了DP,然后设f[i]为出去i个人后剩下人的最大高度#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmat

2017-02-18 09:39:33 764

原创 BZOJ3173: [Tjoi2013]最长上升子序列

我们可以倒着处理出最终的序列,然后因为插入是从1~n插入的,所以按顺序插入,可以直接用树状数组找插入位置之前的最大值,然后更新一下#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<st

2017-02-11 11:22:33 681

原创 BZOJ3172: [Tjoi2013]单词

多串匹配,AC自动机 建出fail树,那么一个点就对他的祖先产生贡献,每个点维护子树内的权值和,然后每个串的出现次数就是自动机上对应的点的值好像讲的不清不楚code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<

2017-02-11 11:02:34 724

原创 BZOJ3171: [Tjoi2013]循环格

易知题目要求最终达到的状态是原图有若干个环,那么所有点的出度和入度都为1,费用流…建图的话,拆点,源向左侧点连容量为1,费用0的边,代表出度,右侧点向汇连容量为1,费用0的边,代表入度,然后每个点的向四个方向的点连容量1,如果不是本来的方向费用1,否则费用0code:#include<set>#include<map>#include<deque>#include<queue>#includ

2017-02-11 10:54:49 568

原创 BZOJ3170: [Tjoi 2013]松鼠聚会

切比雪夫距离,直接上公式转成哈密顿距离 然后就是找一个点到其他所有点的哈密顿距离和最短,将两维分开考虑,排个序O(n)就可以算出每个点到其他所有点x坐标的距离和,y坐标的距离和注意longlong…#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<

2017-02-01 22:51:53 713

原创 BZOJ3167: [Heoi2013]Sao

所有限制关系无视方向是一棵树,那么任意定一个点为根,做树形DP,f[i][j]表示i在其子树的序列中排第j位的方案数,转移的话组合数弄一下,直接这样转移会发现复杂度很高,但是转移的方程可以转化一下,会发现每个点维护f值的前缀后缀和即可剪掉一维#include<set>#include<map>#include<deque>#include<queue>#include<stack>#inc

2017-02-01 22:48:12 940

原创 BZOJ3166: [Heoi2013]Alo

每个宝石找出他能产生贡献即他是最大值的区间,【左边的第二个比他大的+1~右边的第二个比他大的-1】 然后写个可持久化trie每个宝石算一下最大值就好了 找左右第二个比他大的可以按宝石的权值从大到小插入,在线段树上找左右code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<

2017-02-01 22:40:28 610

原创 BZOJ3165: [Heoi2013]Segment

所以题意已经告诉了这题是线段树?线段树每个节点维护覆盖区间的最上的线段,每次插入线段,对于一个被其完整覆盖的区间,如果这个线段与之前覆盖它的无交点取较上者,否则随便取一个,另一个传到两个孩子,询问就每层的线段比较一下复杂度:O(能过) 别打我我不想证也不太会证#include<set>#include<map>#include<deque>#include<queue>#include<s

2017-02-01 22:35:41 775

原创 BZOJ3164: [Heoi2013]Eden的博弈问题

题意一开始看错了想半天不知道他在说什么 要求最小编号,异或和,数目,应该只能把关键叶节点全部找出来才能求 找这些节点的话,好像只能把所有最小黑方胜集合的并集和所有最小白方胜集合的并集找出来求交集 然后dfs下去很好找的吧,要保存每个节点的信息可以用一个树的结构,就是每个节点向对它贡献的节点连边,然后这个节点的信息递归下去找就行#include<set>#include<map>#inclu

2017-02-01 22:28:55 389

空空如也

空空如也

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

TA关注的人

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