自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

neither_nor

alone_wolf

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

原创 NOI2016 滚粗记

DAY -1看了半天魔法禁书目录,和神犇们玩了半天UDIG(你画我猜,U DRAW I GUESS)DAY 0早上坐飞机去四川,飞机上用commonc的本玩背笔试(被鄙视)小程序,结果下飞机之后在大巴上不小心把被鄙视小程序给删了-_-于是就和commonc进行了各种智力竞技娱乐活动,结果被各种暴虐,玩neerc2011的gcd guessing game我居然猜的次数大于了n-_-太卡

2016-07-28 23:02:01 4309 6

原创 BZOJ4640 决斗

好神的一道题,orz ljss……因为每次要把用过的牌堆扔掉,所以其实相当于固定你的选择牌堆顺序,然后对面选择牌的堆顺序是在1~n的全排列里随机一个首先求出p[i],代表小于等于你的第i个数的他的数的数量先考虑一下n我们的目标就是求出赢x场的情况有多少种,然后除以n!就得到了赢x场的几率,然后就可以算期望了我们用f[i][j]表示考虑你的前i个数,从中选出j个数,并且对面任意选

2016-07-18 16:48:50 959

原创 BZOJ4066 简单题

强制在线还卡内存,于是上KDT,插入的时候替罪羊式重建,真是tm玄学复杂度#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 2

2016-07-13 20:52:07 997

原创 BZOJ3252 攻略

因为是在树上,所以一定不会走反向边每次我们要在树上找一个到根路径上点权和最大的点,把答案加上这个和,然后把到根路径上所有点的点权设为0因为每个点的点权只会变为0一次,所以我们可以暴力做这个过程复杂度O((n+k)log n)#include#include#include#include#include#include#include#include#include

2016-07-13 16:51:22 743

原创 BZOJ3939 [Usaco2015 Feb]Cow Hopscotch

考虑分治,一个点只会受到他左半边和上半边的影响,所以像cdq分治一样,先递归左半边,再递归右半边,然后处理左半边对右半边的影响记录一个全局和和每个颜色的和即可#include#include#include#include#include#include#include#include#include#include#include#include#include

2016-07-13 10:20:13 749

原创 BZOJ4520 [Cqoi2016]K远点对

KDT玄学复杂度能过系列……维护一个堆存全局前k远,枚举点对里的一个点在kdt上爆搜加两个剪,一个是如果到一个矩形里任意一个点都不能更新答案就不搜,还有就是两个子树里先搜到这个点最远距离远的#include#include#include#include#include#include#include#include#include#include#include

2016-07-12 16:35:46 757

原创 BZOJ4417 [Shoi2013]超级跳马

做一个3*n的矩阵,前n列表示距离下一行为奇数的每一列的答案的和,中间n列代表偶数的,最后n列代表最后一列的答案矩阵大致就长这样然后快速幂就好了#include#include#include#include#include#include#include#include#include#include#include#include#include#

2016-07-12 14:48:38 1298 4

原创 BZOJ3157/3516 国王奇遇记/(加强版)

推式子如下图用类似记忆化搜索的东西即可求S特判m=1#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 1010#define MAX

2016-07-11 21:06:56 2028

原创 BZOJ3155 Preprefix sum

一个数相当于给他后边的前缀和序列加了一个等差数列直接线段树#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 100010

2016-07-11 20:00:03 494

原创 BZOJ3489 A simple rmq problem

设第i个数上一次出现的位置为lst[i],下一次出现的位置为nxt[i],那么第i个数可以用作更新答案的条件就是lst[i]r&&l把lst,nxt和i分别看作三维坐标,问题就转化为了立方体求最大值对于二维情况,我们可以用二维线段树搞,现在是三维,但是我们发现lst这一维在查询的时候左端点一直为0(我觉得用接地这个词语来形容特别形象-_-),所以我们可以通过可持久化来维护第一维,由于外层进

2016-07-09 23:26:34 802

原创 BZOJ3442 学习小组

先不考虑他让参与人数最多,我们可以S连每个人流量k费用0,每个人连能去的小组,流量1费用手续费,小组连T,拆边建费用考虑让参与人数最多,每个人连T流量k-1费用为0,意义是在他参加了社团的情况下他可以把加入社团的机会让给别的没有社团的人#include#include#include#include#include#include#include#include#inclu

2016-07-09 16:12:12 626

原创 BZOJ2850 巧克力王国

题目就是让你求满足ax+by这个……KDT可以过,不要问我为什么以后看到不会的二维平面问题是不是都可以上KDT然后相信可以过啊-_-#include#include#include#include#include#include#include#include#include#include#include#include#include#includeus

2016-07-09 10:24:11 1184

原创 BZOJ4632 树的编码

观察发现对于树的每个子树都是一个相同的子问题,而每个问题其实就是哈夫曼编码,所以从底层开始每个点对他的所有儿子做一次哈夫曼即可。。父亲数组不是有序的,所以要记录一下编号然后排个序,就可以从后往前直接枚举了……#include#include#include#include#include#include#include#include#include#include#i

2016-07-09 09:11:07 592

原创 BZOJ3036 绿豆蛙的归宿

因为是DAG,之间DP好了我直接粘了2707代码……#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 100010#de

2016-07-08 14:37:41 290

原创 BZOJ2276 [Poi2011]Temperature

首先一个点i能延伸到的最远的点不会远于他前边的点,在此条件下我们找到最往前的一个点x,i和x之间的所有下端点都不高于i的上端点可以搞个线段树,但是commonc说会TLE所以写单调队列好了

2016-07-08 12:44:12 892

原创 BZOJ3707 圈地

我们可以枚举每条线,用离这个线段最近的两个点更新答案,考虑如何快速找到最近的两个点,我们把所有线段按斜率排序,把所有点按到第一个点的距离排序(如果点在线段左边那么距离算负的)然后按斜率枚举每个线段,那么从一个线段l1转到另一个线段l2时,和l2的距离的相对顺序可能改变的点只有l1的两个端点,因为如果有别的点对相对顺序改变,那么这个点对的斜率一定介于l1和l2之间然后就是n^2的了#incl

2016-07-08 12:05:06 659

原创 BZOJ2707 [SDOI2012]走迷宫

设f[i]表示从第i个点走到终点的期望,d[i]表示i的出度,j是第i个点能走到的点则f[i]=sigma (f[j]+1)/d[i]在数据范围小的情况下,我们可以高斯消元求出f数组由于本题中每个边双大小不过这复杂度上限不是100^4的么……反正能过……#include#include#include#include#include#include#include

2016-07-07 19:54:02 1227

原创 BZOJ1547 周末晚会

模是1e8+7啊卧槽真tm蛋疼……因为题里要求循环同构的算同一种,所以我们考虑一下burnside,置换一共有n个,分别是往后窜1~n个位置对于窜x个位置的置换,一共有gcd(n,x)个循环节,且第i个位置属于第i%(gcd(n,x))+1个循环节那么对于一个窜x个位置的置换,合法的不动点数量就是长度为gcd(n,x)的环,不考虑循环同构,没有超过k个女生坐在一起的方案数用f[i]

2016-07-07 11:56:19 1082

原创 BZOJ1273 [BeiJingWc2008]序列

由于是全局加,所以对于所有的加操作我们可以用一个变量X记录下来对于x和X,如果(x+X)&2^i==1的话就说明x+X二进制展开之后的从第i-1位开始的后缀在2^i到2^(i+1)-1之间,也就是x在2^i-X到2^(i+1)-1-X之间(模2^(i+1)意义下)所以对于所有长度的后缀分别开一个权值线段树,然后查询就可以了#include#include#include#includ

2016-07-06 11:58:08 557

原创 BZOJ2806 [Ctsc2012]Cheat

做个广义后缀自动机,这样可以在每个位置找到他往前最多能匹配多长,设为len二分L,考虑判定L可不可行dp,f[i]表示到第i个位置最多能匹配上多少个字符,则最后判断f[n]是否大于0.9*n单调队列优化一下即可#include#include#include#include#include#include#include#include#include#inc

2016-07-06 09:58:36 831

原创 BZOJ2656 [Zjoi2012]数列(sequence)

当n是偶数的时候一直除,直到n是奇数,这样的话n可以分成两个相邻的数的和,把两个相邻的数都分解一次之后还是相邻的两个数的和,所以记录一下相邻的两个数每个被加了多少次,直到一个数是0一个数是1就出答案了#include#include#include#include#include#include#include#include#include#include#include

2016-07-06 08:16:27 1222

原创 BZOJ4415 [Shoi2013]发牌

水题……拿个变量维护一下当前牌堆顶是第几个,然后就是求第k个并删除上来写了个Splay结果T了……粘了大爷的输出优化也不过,改成权值线段树,A了……#include#include#include#include#include#include#include#include#include#include#include#include#include#incl

2016-07-04 16:37:16 700

原创 BZOJ4636 蒟蒻的数列

水题,造个线段树,把标记打线段树上,然后dfs一遍就行了a可能等于b,判掉就好#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MA

2016-07-04 15:19:56 1070

原创 BZOJ3626 [LNOI2014]LCA

链剖,由于询问是询问一段区间内的所以我们建主席树,造两颗主席树,一个维护点的个数,一个维护点的深度和,对于每个点x,往根走,每走一条轻边到达轻边的父亲结点f,就在主席树上给f的点个数+1,深度和+f的深度(默认刚开始是走了一条轻边到达点x的)查询的时候每走一条轻边到达一条重链上的结点x,求出重链上x和x以下有多少个点,再减去从来那条轻边底下来的点的个数,剩下这些点和询问点的lca都是x,用点的

2016-07-02 13:54:44 501

原创 BZOJ3160 万径人踪灭

对于每个可以作为对称轴的位置,我们算出以其为对称轴有多少对位置和字符是对称的,设为t[i],若不考虑不能连续,则我们可以从这t[i]对里任选出来任意对,都是可行的答案,且不重不漏,所以不考虑不能连续的情况的答案为sigma 2^t[i]-1,考虑不能是连续子串,再减去回文子串的数量即可回文子串数量manacher求就可以了考虑一下,如果两个位置和字符a[i]和a[j]关于第x个位置对称

2016-07-02 10:17:50 597

原创 BZOJ2632 [neerc2011]Gcd guessing game

题目描述有些问题,只要你心里知道那个数就行了如果我们猜一个数,他告诉我们gcd不是1,那么相当于把n和你猜的数都除以gcd,他告诉你gcd是1。所以每次都告诉你是1是最坏的情况,这样当n以内的所有素数都作为询问的数的因数出现过,并且他告诉你gcd是1,从而n以内所有素数都被否认是答案的因数之后,我们就能确定答案是1问题变成了我们要给n以内的素数分组,使得每组的乘积小于等于n,问最小组数

2016-07-01 14:40:21 962 2

原创 BZOJ4631 踩气球

每个熊孩子抽象成平面上的一个点,横坐标为左边界,纵坐标为右边界,点权为区间长度,把第x个盒子拿空相当于把以(1,x)为左下角,(x,n)为右上角的矩形内的点减一,答案就是有多少个点等于0,因为每个点最多变成1次0所以当矩形内最小值等于0的时候就找到这个最小值然后把他设为INF并把答案+1即可上述操作可以用KDT或者二维线段树之类的维护复杂度O(n sqrt(n))#include#i

2016-07-01 13:31:18 1226

原创 BZOJ4627 [BeiJing2016]回转寿司

求前缀和,相当于对于每个i求1#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 100010#define MAXM 800

2016-07-01 12:05:34 1255

空空如也

空空如也

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

TA关注的人

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