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

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

原创 BZOJ3441 乌鸦喝水

这题我想了一周……然后今天我发现,我,T,M,看,错,题,啦!!!日了狗算出每个瓶子被喝多少次之后会喝不了然后把瓶子按这个排序然后枚举第几次飞,看当前瓶子是不是在当前这一次被喝没,拿个线段树记录一下区间和乱搞就行了#include#include#include#include#include#include#include#include#include#i

2016-08-31 18:54:16 1085

原创 BZOJ2214 [Poi2011]Shift

假设现在序列中1~i-1已经有序地排在了一起,现在我们要考虑如何把i排到后边我们先把i挪到第一位,然后我们只要保证i一直在第一位,然后把1~i-1窜到最后就可以了我们可以每次进行两次a操作1次b操作就可以干掉后边的两个,而如果i-1后边只剩下了一个我们就可以进行1次a操作和两次b操作但是这样的话当进行到i=n-1而n-1和n他们俩是逆序的时候会出问题,因为你把n-1挪到第一位的时候1也

2016-08-31 10:02:09 762

原创 BZOJ1189 [HNOI2007]紧急疏散evacuate

考虑二分答案然后判断,判断用网络流,S连每个人流量1,每个门按时间拆点,每个时间连T流量1,每个时间连下一个时间流量INF,然后每个人如果能在当前二分的时间内到达某个门,那么这个人连门的他到达的时间然后跑最大流看是否满流来判断即可#include#include#include#include#include#include#include#include#include

2016-08-29 15:57:41 1004

原创 BZOJ1406 [AHOI2007]密码箱

题里要你求x^2=1(mod n),0化简一下相当于求n|(x+1)(x-1)的解这样的话必然可以把n分解成n1*n2,其中n1是x+1的约数,n2是x-1的约数n1和n2中必有一个大于等于根号n,我们枚举这个大于等于根号n的,然后枚举他的倍数作为x+1或者x-1,然后判断可不可行即可这样会落掉1,把1再加到答案里就好了#include#include#include#i

2016-08-29 15:25:16 846

原创 BZOJ4692 Beautiful Spacing

考虑先二分答案,然后DPf[i]表示i能否作为一行的结尾然后我们考虑i作为结尾时,可以作为这一行开头的单词,一个单词j可以作为这一行的单词,当且仅当slen[i]-slen[j-1]+(i-j)*now>=w&&slen[i]-slen[j-1]+i-j其中slen为单词长度的前缀和,w为列数,now为当前二分的答案所以可以作为当前行开头的单词一定是一段区间,我们可以对区间左右端点

2016-08-29 13:13:33 1120

原创 BZOJ4691 Let There Be Light

我怎么感觉此题难点在于判断线段是否与圆的边有交……让我想起了冷冻波那题……我们考虑状压DP,f[i][j]表示前i个气球,保证至少j集合内的光源能照到固定点,最少要拿掉多少个气球,然后每次进来一个气球,我们算他会挡住哪些光源的光,这样有了一个他会挡住的集合d,然后枚举状态j,如果j&d!=0,f[i][j]=f[i-1][j]+1,否则f[i][j]=f[i-1][j]至于如何判线段与圆的

2016-08-29 09:57:38 861

原创 BZOJ4690 Never Wait for Weights

第一反应是LCT什么鬼……我是不是没救了然后看了一眼AC代码长度,瞬间发现自己是傻逼……拿带权并查集维护就行了,每个点维护一下自己比自己的爹青多少,连边和路径压缩的时候更新一下即可#include#include#include#include#include#include#include#include#include#include#include#incl

2016-08-29 08:06:39 860

原创 manacher 后缀数组 AC自动机 回文自动机 知识点讲解 课件

光老师让我讲课……于是我就做了课件……因为是PPT所以懒得一页一页粘上来,就发度娘盘链接吧-_-包含简单的知识点讲解以及例题~(有例题没题解有卵用啊-_-)http://pan.baidu.com/s/1jIdgQB8

2016-08-28 18:50:50 725

翻译 替罪羊树 论文部分翻译

这个……为什么我没事闲的蛋疼要翻译这个呢,因为上学期学替罪羊的时候觉得网上有关替罪羊树的资料不是特别多的样子……然后就立了个flag“我国赛完了一定要把替罪羊俗话的论文翻译出来”结果翻译倒是翻译了,但是只翻译到了插入的复杂度证明完毕-_-然后就弃坑了但是还是发上来吧因为公式懒得打所以很多式子都是直接截的原论文的图,但是图要想上传的话也是很麻烦……所以索性传到度娘盘上好了-_-由

2016-08-28 18:38:54 1569

原创 BZOJ1577 [Usaco2009 Feb]庙会捷运Fair Shuttle

按结束点排序,然后能塞多少塞多少即可#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 50010#define MAXM 2

2016-08-27 12:13:39 1506

原创 BZOJ4614 [Wf2016]Oil

YY一下,我们觉得答案一定会过某个线段的某个端点,所以我们枚举这个直线过哪个端点,这样我们如果知道了斜率就能确定直线了,而现在每一条线段都覆盖了一段斜率区间,把线段拆成加入和删除排序扫一下就行了斜率用y/x算的话不但要特判过Y轴而且还会被卡精度,所以我们用x/y来算就好了#include#include#include#include#include#include#inclu

2016-08-26 16:08:28 1021

原创 2797: [Poi2012]Squarks

把所有的和排序,假设我们求出的答案也是从小到大排序的,我们发现最小的和一定是第一个数和第二个数的和,次小的和一定是第二个数和第三个数的和而我们如果知道了第一个数是什么,我们就能知道第二和第三的数是什么,把前三个数组成的和去掉之后,最小的和一定是第一个数和第四的数的和,然后再把第四名和前三个数的和去掉,最小的和一定是第一和第五的和由此我们就能算出所有数都是什么而第一个数我们可以通过枚举第

2016-08-26 14:57:38 712

原创 BZOJ2790 [Poi2012]Distance

一个数x可以分解为∏p[i]^a[i],设g[x]为把x分解后的sigma a[i],则x与y的距离为g[x]+g[y]-2*g[gcd(x,y)]用f[i]表示他给你的数中,是i的倍数的数的g的最小值,f1[i]表示次小值,根号n算出f值之后对每个a[i]根号n枚举约数算答案即可#include#include#include#include#include#include#

2016-08-26 13:15:49 700

原创 BZOJ2242 [SDOI2011]计算器

第一问快速幂,第二问扩欧或者快速幂,第三问BSGS,模板题#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 1010#def

2016-08-25 15:23:24 440

原创 BZOJ3916 [Baltic2014]friends

枚举U的位置,hash判断即可这个玩意特别的蛋疼……不唯一解指的是答案的字符串不一样,要是可以从两个位置拆开但是是俩一样的字符串的话不算不唯一解-_-#include#include#include#include#include#include#include#include#include#include#include#include#include#inc

2016-08-24 19:04:11 817

原创 BZOJ3715 [PA2014]Lustra

额,傻逼题……#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 100010#define MAXM 1010#defin

2016-08-24 16:28:08 445

原创 BZOJ3713 [PA2014]Iloczyn

n以内的斐波那契数大概是log n个,所以直接枚举就行了……#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 1010#de

2016-08-24 15:51:23 280

原创 BZOJ3714 [PA2014]Kuglarz

知道了第x~y个杯子的奇偶性,就相当于知道了x和x-1之间的缝到y和y+1之间的缝的奇偶性知道了缝a到缝b的奇偶性和缝b到缝c的奇偶性,我们就知道了缝a到缝c的奇偶性要知道所有杯子底下有没有球,我们就要知道每个杯子左右两端的缝之间的奇偶性,也就相当于要知道任意两个缝之间的奇偶性所以这就是一道花式最小生成树问题-_-知道奇偶性相当于连一条边,整个图联通了就都能知道了#include

2016-08-24 15:39:48 1324

原创 BZOJ2794 [Poi2012]Cloakroom

离线,把询问和物品按m和a排序,每次把a小于等于当前m的物品加进来,f[i]表示用b尽可能大的物品凑出i,b最小的那个是多少,然后判f[s]是否大于m+k即可#include#include#include#include#include#include#include#include#include#include#include#include#include#i

2016-08-24 15:11:06 440

原创 BZOJ2557 [Poi2011]Programming Contest

我们可以想到费用流做法,S连每个人一堆边流量1费用是他做第x道题的罚时,每道题连T流量1费用0,人连题流量1费用0但是跑费用流会T我们可以把S到人的边按权值从大到小排序后跑匈牙利,因为匈牙利会保证之前选上的不会被放弃,并且这里肯定不会走有费用的反向边,也就相当于每次贪心走了最短路记得做上m道题之后及时break#include#include#include#include

2016-08-24 11:45:45 753

原创 BZOJ2906 颜色

每n^2/3个数分一块,然后预处理从第i块到第j块前k个数的答案以及第k个数有多少个然后查询的时候同块暴力,不同块的话中间调用答案,两边零散的调用已经有多少个数来更新答案#include#include#include#include#include#include#include#include#include#include#include#include#in

2016-08-24 10:34:11 794

原创 BZOJ3640 JC的小苹果

建分层图,有怪兽的点连后边的层,每层之间是有拓扑序的所以可以一层一层高斯消元,然后我们发现每一层的方程组系数是一样的只有常数不一样,而常数项不影响消元过程,所以我们可以预处理消元的过程,这样每次只需要消常数项就是n^2的,总复杂度就是hp*n^2这个……有重边和自环,非常的蛋疼-_-#include#include#include#include#include#include

2016-08-23 18:21:36 1110

原创 BZOJ1778 [Usaco2010 Hol]Dotp 驱逐猪猡

把每个点拆成两个点,不爆炸和爆炸然后就可以高斯消元求每个点的期望经过次数了,爆炸的点没有出边,所以就是爆炸的概率题目描述有误差评,没SPJ,要保留9位小数#include#include#include#include#include#include#include#include#include#include#include#include#include

2016-08-23 16:40:35 1080

原创 BZOJ3270 博物馆

建一张新图,有n^2个点,新图中一个点代表发生第一个男孩在点x,第二个男孩在点y这种情况的期望次数,两个人都在一个点的情况就是终点然后就是高斯消元了#include#include#include#include#include#include#include#include#include#include#include#include#include#incl

2016-08-23 16:25:43 848

原创 BZOJ2795 [Poi2012]A Horrible Poem

首先答案答案一定是长度的约数并且把询问串开头去掉答案那么长结尾去掉答案那么长得到的两个串是相等的判相等可以用hash但是直接枚举会T我们发现循环节重复的次数一定是每个字母出现次数的约数,所以求出所有字母出现次数还有区间长度的最大公约数,枚举这个约数,然后就过了#include#include#include#include#include#include#include

2016-08-23 15:09:31 713

原创 BZOJ2209 [Jsoi2011]括号序列

一个括号序列将合法括号都去掉后将剩下左边一堆右括号和右边一堆左括号,这个括号序列变合法需要的步数就是(左括号数量+1)/2下取整加上(右括号数量+1)/2下取整拿splay同时维护翻转标记和取反标记,每个点维护4个量表示翻不翻转,取不取反时剩的右括号数量和左括号数量即可wa了好多好多发最后要了数据结果发现是没弄明白怎么算答案-_-#include #include #include

2016-08-23 13:24:50 765

原创 BZOJ2796 [Poi2012]Fibonacci Representation

贪心选最接近的,不要问我为什么-_-#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 1010#define MAXM 10

2016-08-22 18:39:48 855

原创 BZOJ3503 [Cqoi2014]和谐矩阵

我们发现确定了一行之后,为使这一行没有不合法情况,下一行就确定了,所以我们可以用第一行的数表示出整个矩阵,而合法当且仅当第n+1行全为0,用n+1行的表示高斯消元出第一行然后递推整个矩阵即可#include#include#include#include#include#include#include#include#include#include#include#inc

2016-08-22 17:41:48 759

原创 BZOJ2506 calc

首先我们发现这个区间特别的蛋疼……所以我们离线,把询问拆成两个,然后从前往后扫整个序列对于p100的,开个数组记录值为多少的都有多少个,然后暴力#include#include#include#include#include#include#include#include#include#include#include#include#include#include

2016-08-22 16:39:04 370

原创 BZOJ4548 小奇的糖果

同3658 Jabberwocky双倍经验把内存开小点#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 100010

2016-08-22 10:44:33 656

原创 BZOJ3732 Network

最小生成树完了树倍增就好了……傻逼题……#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 30010#define MAXM

2016-08-22 10:32:12 734

原创 [POI2007]砝码Odw

看这数据范围就不太可DP的样子……考虑贪心首先注意到题目里有对于任意两个砝码其中一个是另一个质量整数倍的条件,所以砝码质量的种类不超过log INF考虑按质量从小到大把砝码往容器里放,这样的话所有的砝码和容器的质量都可以除以当前砝码质量然后下取整,砝码的质量都是整数倍,而对于容器,被下取整掉那部分是没有用的,因为已经没有比当前砝码更小的砝码了,所以那部分不可能被填满那么我们让当前砝码优

2016-08-22 07:46:05 351

原创 BZOJ3143 [Hnoi2013]游走

算出每条边的期望走过次数,期望大的给小的编号,答案就最小每条边的期望走过次数可以由两个端点的期望次数算出来1个点的期望走过次数可以由与他相邻的点的期望表示出来比较特殊的是n号点不会对任何点的期望产生恭喜,因为到n就停了,还有1号点的期望次数要+1因为他是起点然后高斯消元就可以解出每个点的期望,然后每条边的期望也就能算出来了#include#include#include

2016-08-20 10:36:36 1417

原创 BZOJ2827 千山鸟飞绝

这个……我们会发现,坐标其实没毛卵用,只不过是区分不同的点所以我们直接把坐标离散化了然后鸟来回飞就相当于一个维护集合大小,集合max,一个集合里的某个权值对一个数取max拿个splay随便搞搞就可以了#include#include#include#include#include#include#include#include#include#include#i

2016-08-19 19:23:28 1075

原创 BZOJ4320 ShangHai2006 Homework

考虑对询问大于根号300000和小于根号300000的分开做,对于小于根号300000的,直接开个数组记录答案,插入的时候O(根号300000)更新,对于大于的,假设询问数为k,我们枚举j=ik,i>=0,ik这个我们可以倒着做,每个点用并查集指向大于等于他的第一个数,倒着做把加入变成删除,删除的时候就直接把x这个点的根指向x+1的根#include#include#include#

2016-08-19 17:53:30 489

原创 BZOJ3922 Karin的弹幕

考虑把询问的公差大的和小的分别考虑,大的直接暴力,对于小的公差,我们每个公差建一个1~N的线段树,维护1,1+i,1+2i...2,2+i,..3,3+i上的权值,这样一个等差序列就转换成一段区间,线段树上查就好了讲道理这个算法取公差按根号分最优,复杂度是n sqrt n log n的……但是我们按5分,然后很快就过去了……#include#include#include#inclu

2016-08-19 15:55:39 569

原创 BZOJ1106 [POI2007]立方体大作战tet

看题,没啥思路上了趟厕所,路上突然想到答案是不是就是形如abab这样的形式有多少对,因为凡是碰到这样的一定要交换一次,而不是这样的就不用交换就消了然后发现确实如此上厕所大法好啊这玩意可以搞个树状数组求#include#include#include#include#include#include#include#include#include#include

2016-08-19 14:00:53 963

原创 BZOJ4197 [Noi2015]寿司晚宴

注意到对于任意一个数,他与别的数是否互质取决于他俩是否有相同的质因数,而对于任意的x,x的大于根号x的质因数最多有一个,而n所以我们可以考虑对每个人取的小于根号500的质数的状态状压,然后枚举每个数,进行DPf[i][j]表示第一个人小于根号五百的质数的状态为i,第二个人为j的方案数枚举当前数,设当前数为x,x去掉所有小于根号五百的质因子之后的数为y对于所有y相等但不为1的数(每个

2016-08-19 10:22:36 564

原创 BZOJ3367 [Usaco2004 Feb]The Big Game 球赛

傻逼题……发出来就是凑凑文章数……#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 2510#define MAXM 1

2016-08-19 09:11:43 252

原创 BZOJ2217 [Poi2011]Lollipop

结论:假如存在一个子串和为x,那么一定存在一个前缀,和为x或x+1证明:可以认为原串是由和为x的串在开头和结尾添加若干数得到,再后边添加数不会对产生和为x或x+1的前缀产生影响,所以只考虑在前边添加数,认为后边多余的数可以删掉若原来是一个和为x或x+1的串,那么如果在前边添加的数和最后一个数相等,去掉最后一个数之后依然是一个和为x或x+1的串考虑新添加的数和最后的数不同的情况若原来

2016-08-19 07:56:25 728

空空如也

空空如也

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

TA关注的人

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