自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

转载 bzoj 2004

这几天就顾着看以前的题,不写的码手还是会生疏啊状态压缩+矩阵乘法发现在长度为P的区间中符合题意的很有限,所以先压缩完建出图,用矩阵加速转移为什么有状态压缩大家都要弄个DP上去呢,感觉只有压缩的部分没有DP呀。。 1 #include<cstdio> 2 #include<cstring> 3 #include<algori...

2016-03-25 21:37:00 104

转载 bzoj 3110&&codevs 1616

Too Naive!以为市选有多简单QAQ用树套树,体验到了用朴素做法的妙处先建一颗朴素的权值线段树,对树上的每个结点依次建线段树,表示区间上的权值的个数写得挺艰难。。而且KPM+的几组数我过不去(orzKPM 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;...

2016-03-22 22:06:00 86

转载 bzoj 2134

水概率DP,ANS=sigma(min(a[i],a[i-1])/(a[i]*a[i-1])) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define...

2016-03-20 12:15:00 92

转载 bzoj 1570

先二分答案,然后建分层图跑最大流,流量是人数则可行 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define link(x) for(edge *j=h...

2016-03-19 22:08:00 85

转载 bzoj 2819

说好卡dfs的。。本来还想在选根上动下手脚,看来不用辣23333身为蒟蒻怎么可能会博弈论,度娘告诉我们只需要判断异或和==0就行了然后链剖+BIT就可以了(用BIT后链剖头一次这么短,不过我没感觉到就是了,BIT大法吼啊貌似dfs序也能做,太弱了还不会。。 1 #include<bits/stdc++.h> 2 #define inc(i,l,...

2016-03-17 21:32:00 58

转载 poj 1741

最近不造应该干什么好,很快就STOI了,好慌>.<裸点分治,找树的重心然后处理 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<iost...

2016-03-16 19:02:00 135

转载 bzoj 2326

矩阵乘法。。这个矩阵的构造有点麻烦。。关键就从n转移到n-1(其实是我题做得少。。分位数统计即可 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #d...

2016-03-12 13:12:00 81

转载 bzoj 1838

让邻接矩阵做乘法,对于不能走的,因为t只有234,所以构造12个矩阵然后分k/12和k%12做就行 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #defi...

2016-03-10 22:15:00 61

转载 bzoj 4236

记得KPM出的题中有过类似的。。先求出前缀,然后符合题意的条件的i和j满足a[i]-a[j]==b[i]-b[j]==c[i]-c[j]等价转换得a[i]-b[i]==a[j]-b[j]&&a[i]-c[i]==a[j]-c[j]所以a[i]-b[i]和a[i]-c[i]用hash记录就可以了(我懒直接用map了 1 #include<b...

2016-03-08 21:36:00 62

转载 bzoj 1500

再写一次毒瘤题,改变代码风格改用了指针,以为会不太适应,事实上不会撒。。对拍数据要等20分钟才出来= = 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #inc...

2016-03-08 20:45:00 112

转载 bzoj 3439

先把所有词扔进tire,然后dfs序弄出区间,然后就是区间最大值了主席树各种写挂QAQ 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define l...

2016-02-25 18:36:00 93

转载 bzoj 2330

开学了,不能愉快地刷题了QAQ差分约束(以前用并查集做真是作死。。)然后有个点比较坑,要过的话就要倒着加边,否则TLE 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i-...

2016-02-21 17:22:00 116

转载 bzoj 1030

单词建出AC自动机,然后在自动机上做DPd[i][j]表示第i个字符匹配到节点j上的方案数直接算有点麻烦,统计不满足的方案数就好了 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i&...

2016-02-17 00:05:00 71

转载 hdu 2222

AC自动机入门题,只是上来传个模板。。。 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<iostream> 6 #include<qu...

2016-02-16 15:22:00 58

转载 bzoj 4260

设a[i]为前缀和,则i~j的异或和为a[j]^a[i],对于2个只需把另一个当成后缀就可以了求max(a[j]^a[i])的话就用tire维护就可以了 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(i...

2016-02-15 00:02:00 105

转载 bzoj 1212

tire入门,死得好惨。。。 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define link(x) for(edge *j=h[x];j;j=j-&...

2016-02-14 20:48:00 116

转载 bzoj 1935

很明显直接二维是作死的。。所以给按X点排下序,当然离线处理询问时差分的点会方便些。。对Y坐标就用BIT维护就行。。但由于坐标比较大,所以还要离散化= =处理起来略麻烦但代码并不难写 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring>...

2016-02-13 22:57:00 102

转载 bzoj 2743

和上道差不多,离线处理,然后扫一遍序列,扫到就数先不增加,上个相同的数+1,上上个数-1,用BIT维护前缀和静态差错要多练练。。。 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm>...

2016-02-13 16:10:00 85

转载 bzoj 1264

用DP直接求LCS明显超时,这题和平时的区别在与给定了数,所以从这入手可以直接记录各数字的位置然后依次填入dp[i]=max{dp[j]}+1(1<=j<=i)用BIT维护最大值O(nlogn) 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstr...

2016-02-13 00:51:00 100

转载 bzoj 1878

这题的做法有点神奇。。离线处理。按r排序,记录上个相同的数出现的位置,边加入一个数的同时删去上一个相同的数就好了。。用BIY维护和BIT写起来挺快的。。 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include<a...

2016-02-12 21:23:00 58

转载 bzoj 1452

二维BIT。。。感觉不会树状数组还是不太好。。而且这题用线段树肯定MLE。。 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define lin...

2016-02-12 12:34:00 64

转载 bzoj 4199

没有题面差评先来遍SA求出h,再给h排序,从大到小计算,并查集维护连续的区间(表达能力太弱。。还是看代码好说话) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--)...

2016-02-11 23:01:00 100

转载 bzoj 3238

明显要用求SA再求h,而lcp(i,j)就等于i到j之间最小的h用f[i]表示i跟比i大的后缀的lcp的和,然后用单调栈维护最小值就好了(有点像DP?) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(i...

2016-02-11 16:11:00 58

转载 bzoj 1031

复制一下原串处理环,然后直接出SA就可以了 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define link(x) for(edge *j=h[x];...

2016-02-10 19:52:00 103

转载 codevs 3160

SA入门题,将2个串中间用另外的字符链接即可调了半天一直以为是模板的错,原来是乘法超了intQAQ不好意思。。传错代码,误认子弟(啪啪啪 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l...

2016-02-10 18:17:00 65

转载 bzoj 1072

状压DP,f[i][j]表示在i状态下余数为j的情况然后就是i的表示。。先认为数字互不相同(坑爹的想法= =),然后就有没有用到压缩状态然后还要去重。。对每个数字来说除以数字个数的阶乘即可 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #def...

2016-02-06 00:56:00 82

转载 bzoj 1076

最近好懒散QAQ就是状压DP+概率。。由于顺着推还要计方案数略麻烦,所以就倒着推 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define link...

2016-02-05 20:45:00 59

转载 bzoj 1875

把边当做一个状态(orz居然有这种想法),初始点也看成边,然后矩阵快速幂就可以了(感觉有点像flyod) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #d...

2016-02-04 21:18:00 47

转载 bzoj 2301

  先预处理莫比乌斯函数,再分块求不会用公式编辑TAT,直接贴题解吧。。从结论来看貌似也能用容斥原理? 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--)...

2016-02-03 13:33:00 40

转载 bzoj 1257

今天题目看来看去都觉得不可以做啊,数论弱到不堪直视分为2个部分,对于n>k部分直接n*(n-k)对于n<=k部分,x%i=x-(x/i)*i,这样就可以枚举商,然后分段加起来。。 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #de...

2016-02-03 00:22:00 47

转载 bzoj 2705

orz教主的解法实在太神了直接贴题解 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define link(x) for(edge *j=h[x]...

2016-02-02 00:11:00 58

转载 bzoj 2818

记得以前是用容斥原理过的?好吧现在只记得奇加偶减了。。。转化题目成求满足x/p和y/p互质的数对,那和上题就差不多了先欧拉筛求出phi的前缀和a[i],依次枚举每个素数p[i],排除(1,1)答案就是sigma(a[n/p[i]]*2-1) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int...

2016-02-01 21:12:00 56

转载 bzoj 2190

开始补我不敢碰的数论QAQ看了资料感觉还是很晕,先把结论记下吧。。若(x,y)符合提议gcd(x-1,y-1)=1,那么先欧拉筛法求出s=sigma(phi[i]),然后注意(1,2)(2,1)(2,2)3个点,答案就是2*s+1了 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l...

2016-02-01 20:51:00 78

转载 bzoj 1491

flyod时顺便算出c(s,t),我的计数原理要补补。。。转载于:https://www.cnblogs.com/onlyRP/p/5174248.html

2016-02-01 00:31:00 48

转载 bzoj 2424

裸费用流,要注意的是当天供应的东西不一定要从仓库里拿,所以S限制的容量应该是i'-(i+1)的数据那么弱,暴力或许过得去? 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;...

2016-01-31 23:16:00 71

转载 bzoj 1565

很明显是最大权封闭子图(noi挺喜欢考?),但直接跑最小割的话处理不了不能打到的plant,所以要先拓扑排序简化下图(重建图挺烦。。) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i&...

2016-01-31 16:00:00 98

转载 拓扑排序

感觉总是无视拓扑排序也不太好,就来了2道模板题。。不造哪个时候又给忘了。。codevs 1833 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #defin...

2016-01-31 14:32:00 43

转载 bzoj 1407

裸最大权封闭子图 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #define dec(i,l,r) for(int i=l;i>=r;i--) 4 #define link(x) for(edge *j=h[x];j;j=j->nex...

2016-01-30 15:46:00 98

转载 bzoj 3156

f[i]=max{f[j]+(i-j-1)*i-(b[i-1]-b[j])+a[i]}b[i]为i的前缀和易得(f[j]+b[j]-f[k]-b[k])/(j-k)<i同样单调队列维护凸包longlong老是没注意,AC率就是这么刷下来的QAQ 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) ...

2016-01-30 02:00:00 64

转载 bzoj 1597

居然还有奶牛题没被权限(感动QAQ)如果有包含关系的话就可以去掉小的,所以可以先排完序后去掉逆序的然后长和宽都是单调的,就可以出方程f[i]=max{f[j]+a[j]b[i]}易得(f[j-1]-f[k-1])/(a[j]-a[k])<b[i](易项时注意符号问题)单调队列维护凸包即可 1 #include<bits/stdc++.h>...

2016-01-30 01:15:00 98

空空如也

空空如也

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

TA关注的人

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