自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Devil_Gary的博客

Devil_Gary

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

原创 BZOJ4566 [Haoi2016]找相同字符 SAM+拓扑

学了几天SAMSAM学了 这道题总算是领会到了些许 对parentparent树有了更深的理解 但是我还是不能表述出来 太菜了大家可以去百度CLJ神犇的PPT 讲的很好 附一个百度文库的网址我们可以先跑出两个串的SAMSAM 对于每一个节点 记录到达此节点的串的数目 这时候要用到拓扑 因为对于一个节点ii 如果有两个串能在i匹配 则他一定能下parent[i]parent[i] 匹配 所以到拓扑将每

2017-12-25 20:17:50 774

原创 BZOJ1823: [JSOI2010]满汉全席 2-sat

裸的2-sat 选(hi,mj)(hi,mj)的话就连(i′,j)(j′,i)(i',j )( j',i) 特别的(hi,mi)(hi,mi)不用连 最近集训被吊打啊 好蒻 打算扎实学习一阵 总觉得在知识和实践之间有着一道无法跨越的鸿沟#include<bits/stdc++.h>#define bug(x) cout<<(#x)<<" "<<(x)<<endl#define cl(x) me

2017-12-22 20:20:40 531

原创 BZOJ3505 [Cqoi2014]数三角形 数学

总数是ans=C3n∗m−m∗C3n−n∗C3m−斜着的总数ans=C_{n*m}^3-m*C_n^3-n*C_m^3-斜着的总数 斜着的可以用gcd枚举 对于一个长i宽j的矩形 计算出他的对角线 有s个整数点 则该对角线的贡献是s-2 再计算出只总有多少的这么大的矩形 求和就好啦#define bug(x) cout<<(#x)<<" "<<(x)<<endl#define ll long l

2017-12-13 16:01:20 570

原创 BZOJ2820 YY的GCD 莫比乌斯反演

∑isprime(p)∑na=1∑mb=1gcd(a,b)==p∑isprime(p)∑_{a=1}^n∑_{b=1}^mgcd(a,b)==p ∑isprime(p)∑⌊np⌋a=1∑⌊mp⌋b=1gcd(a,b)==1∑isprime(p)\sum_{a=1}^{⌊\frac n p⌋}∑_{b=1}^{⌊\frac m p⌋}gcd(a,b)==1 ∑isprime(p)∑⌊np⌋a=1∑

2017-12-13 15:08:04 318

原创 BZOJ3237: [Ahoi2013]连通图 cdq分治+并查集

首先连通图问题 用并查集维护很显然 看到k的范围 铁铁的nlognnlogn 因为是离线询问 我们很容易就能想到用cdq分治来维护并查集 对于两个集合s1,s2s1,s2 我们可以把不属于s1,s2s1,s2的边都先存到并查集里 将s1s1中不属于s2s2的边加进去 这时候就可以判断s2s2这个集合是否满足了 之后我们将之前加进去的边删掉 再加入s2s2中不属于s1s1的就又可以做s1s1啦

2017-12-06 11:27:59 610

原创 BZOJ1978 [BeiJing2010]取数游戏 建图+拓扑序

很容易想到在可以满足L≤gcd(i,j)L\leq gcd(i,j)的i,ji,j之间连边 但是暴力n2n^2枚举肯定过不了啦 考虑枚举每一个大于L的公因数 我们对于每个数根号n枚举他的因子 对每一个因子建一个vectorvector来存 然后每一个vectorvector里的i和i+1连边 yy一下 这样连就保证了L≤gcd(i,j)L\leq gcd(i,j)的点(i,j)(i,j)可以到达通过

2017-12-05 18:07:37 496

原创 BZOJ2750[HAOI2012]Road 最短路

想了半天只知道对于每个边求起点到他的方案数*他到终点的方案数 不知道怎么枚举起点终点 搜了搜题解 涨了些姿势 原来Dij可以在求出单元最短路的同时将每个点到源点的距离排序 这样的话我们就可以枚举起点 按照Dij得到的距离顺序进行转移 具体的看代码吧 有点困 写不动了 代码来自Bloodline#include<bits/stdc++.h>#define rep(i,l,r) for(int i=

2017-12-05 10:26:35 532

原创 BZOJ3944 Sum 杜教筛

看完题一副不可做的样子 默默点开了题解 发现是杜教筛 就花了半天学习了一下 先说下杜教筛 可以在优于线性的复杂度内求出积性函数的前缀和 下求∑ni=1f(i)\sum_{i=1}^nf(i) 令F(i)=∑ni=1f(i)F(i)=\sum_{i=1}^nf(i)我们可以再引入一个积性函数g(i)g(i) 则∑ni=1f(i)∗g(i)=∑ni=1∑d|if(d)∗g(id)=∑ni=1∑⌊

2017-12-02 16:40:48 616

空空如也

空空如也

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

TA关注的人

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