
日常
文章平均质量分 79
Zeyu_King
蒟蒻代码风格巨丑,神犇勿喷:)
展开
-
[bzoj 3994] sdoi2015 约数个数和
需要用到一个神奇的式子:d(nm)=sigma [ gcd(i,j)==1 ] 其中i|n&&j|m把这个做前缀和应用到最终答案中去可得ans = sigma( {n/i} * {m/j} * [ gcd(i,j)==1 ] ) 其中{x}表示x向下取整应用莫比乌斯反演可得ans = sigma( {n/i} * {m/j} * sigma mu(d) )其中d|i&&d原创 2015-04-22 09:30:59 · 1029 阅读 · 0 评论 -
除草(4.6~4.11)
1、 加特技水题,树上背包dp。2、花可以推出第一步答案为(n!)^2的约数个数第二步其实要求一个long long范围内的质因数分解,Pollard_rho解决。3、连电线任意重连一条树边,求修改后树直径的最小值和修改方案。比较繁琐的树dp。大概就是想办法搞出子树里的直径,子树外的直径,那么割去子树连向外的边,添边的最优方案就是加在两条直径的中间。开了20来个数原创 2015-04-13 23:08:47 · 671 阅读 · 0 评论 -
[bzoj 3196] 二逼平衡树
网上各种方法都有了。。。。去年学主席树的时候准备用树状数组套主席树水过,结果发现空间比较吃紧,就一直放在那边没敢碰。前几天在那出来时——嗯,似乎是裸的线段树套平衡树(虽然我没有写过)。于是就这样码下去了。。。。。原创 2015-05-01 09:55:17 · 835 阅读 · 0 评论 -
Primitive root
高大上的数论,先入门再说。原根的定义可以到wiki上找,上面介绍得很清楚。如果你是个热(bu)爱(dong)祖(ying)国(yu)的人,看这个blog就行了1、51nod 1135奇怪的oj,还是放链接吧求奇素数n最小的原根。从2~n-1枚举x,判断x是否满足x^j mod n != 1 j=2,3,4,...,phi(n)-1暴力判断会T,需要跟快的算法。原创 2015-05-14 19:59:36 · 1460 阅读 · 0 评论 -
Chinese Remainder Theorem
用于求解同余方程组x = ri (mod ai) 1更一般的,我们来考虑如何解决ai不互质的情况我们可以用合并方程组的方法来解决此类问题。x = r1 (mod a1)x = r2 (mod a2)我们可以将上述方程写成另一种形式x = k1*a1+r1x = k2*a2+r2我们可以得到k1*a1+r1=k2*a2+r2即k1*a1 = r2-原创 2015-05-29 19:58:49 · 983 阅读 · 0 评论 -
[bzoj 4080] Wf2014 Sensor Network
will讲的题,网上几乎都是用随机化算法过得,代码短的出奇,为了维护标算的尊严,我决定推广一下表算。。。。你敢信这题是二分图最大独立集!?枚举距离不超过d的两个点,已这两个点为圆心,距离为半径分别作圆,会形成如下的图形可以看到上半部分的点之间距离小于等于d,严格来说是小于确定两点之间的距离。下部分同理。但是上下部分的点之间距离可能超过d,在这些点对之间连一条边。求最大独立集原创 2015-06-13 07:58:20 · 1058 阅读 · 0 评论 -
CDQ分治优化DP
昨天被学军的公开赛虐傻了,才发现自己还不会用CDQ优化DP,吓得赶紧去填坑。。。普通的CDQ就是对二分操作,计算前半部分的插入对后半部分的询问的影响。那么如何用CDQ优化DP呢?看一道例题:NOI2007 cash很容易推出平方的dp方程:f[i] = max(f[i-1], f[j]/(R[j]*A[j]+B[j])*R[j]*A[i] + f[j]/(R[j]*A[j]原创 2015-06-28 22:10:51 · 1651 阅读 · 0 评论 -
除草(3.30~4.4)
//以下所有代码都可在我的代码片里找到1、travel基本把树剖忘光了。。。注意到b树上的点至多对应a树上的一个点,询问要求b树上的一条路径对应a树上几条路径。简单的说就是把树上的路径剖成logn段,每段我们都可以利用主席树对每段查询即可。2、弗洛伊德的复仇可以看到如果所有的边都满足ai>bi(应该是优惠吧),那么一定存在最优策略使得所有的货物都应该是选择一条路径来运输。原创 2015-04-05 15:25:14 · 761 阅读 · 0 评论 -
后缀自动机初步
想学这个算法很久了省选结束后终于下定决心好好学学!先推荐两篇文章http://hi.baidu.com/myidea/item/142c5cd45901a51820e25039?qq-pf-to=pcqq.grouphttp://blog.youkuaiyun.com/huyuncong/article/details/7583214学好后缀自动机的关键就是理解其转移边与父亲变得不原创 2015-04-23 20:01:13 · 1721 阅读 · 0 评论 -
莫队算法小结
终于把糖果公园a掉了,写点小结冷静一下(由于博主现在思维混乱,所以请用混乱的思维来阅读本篇文章)1、小z的袜子这算是鼻祖了吧。把序列分成sqrt(n)块,把询问先按左端点所在的块顺序,再按右端点升序排序,可以证名这样暴力移动左右端点最多达到O(n^1.5)的复杂度简单吧code是很就以前写的了,很丑勿喷#include #include #include #inc原创 2015-06-11 22:17:13 · 694 阅读 · 0 评论 -
SPOJ GSS2
求最大子段和,但是相同的数只算一次。在现很难完成,可以考虑离线。离线方法很trick把原数组按读入顺序加入,用s[i]维护s[i]到当前加入的和(不重复计算)如何维护这个和?很简单,只要用线段树把pre[i]+1~i的s都加上a[i]即可把询问按照右端点排序,对于询问[l,r],我们只要在加入r之后查找s[l~r]曾今的最大值即可这个怎么用线段树维护?可持久化?似乎会爆空间原创 2015-06-13 21:33:28 · 793 阅读 · 0 评论 -
[bzoj 3626] LNOI2014 LCA
神题!虽然想到离线,但是还是只会随机数据的做法。。。。有一个比较有意思的结论:把点i到根的所有点权值设为1,其他点为0,此时j到根的所有点权和即为dep[LCA(i,j)]不难发现,这个方法满足加法性质。把询问查分,从1到n处理每个点,将其到根的权值+1,询问只要看这个点到根的权值和就是LCA的深度和了!LCT维护即可#include #include #inclu原创 2015-06-13 21:55:09 · 690 阅读 · 0 评论 -
省选模版复习——LCT
bzoj2157 LCT裸题#include #include #include using namespace std;const int INF=1e9;const int Maxn=40005;int son[Maxn][2],sum[Maxn],minx[Maxn],maxx[Maxn];int inv[Maxn],rev[Maxn],w[Maxn],fa[Maxn]原创 2015-04-15 08:22:42 · 564 阅读 · 0 评论 -
[bzoj 2565] 最长双回文串
似乎把这题些颓了。Manacher预处理,得到g[]数组。之后蒟蒻就开始无脑的用数据结构大法了。。。慢得飞起#include #include #include #include using namespace std;char S[200005];int minx[800005],tip[800005],g[200005];int maxl,p,i,N,n,t,原创 2015-04-09 19:57:21 · 544 阅读 · 0 评论 -
APIO2014题解
话说就要APIO2015了,我才把2014的题做完。。。。1、回文串当时考场上据说有很多人用Manacher+其他各种字符串利器虐了。。。但是现在我们有了回文树这种裸题,这不是水吗。。。。。#include #include #include using namespace std;typedef long long LL;const int Maxn原创 2015-04-24 16:36:44 · 1851 阅读 · 0 评论 -
cqoi2015部分题解
只做了前三题。。。。。T1、选数先把题目转化为求选n个数最大公约数为1,不用说了。假定f[i]为选出n个数最大公约数为i的方案数。由于题目中有条件H-L令L=(L-1)/i, R=H/if[i] = (R-L)^n - sigma f[a*i] - (R-L)最后的R-L为减去全部选择一个数的方案数答案为f[1]PS:如果范围中有1,注意f[1]++,因为全部选原创 2015-04-22 09:48:00 · 525 阅读 · 0 评论 -
2015年国家集训队测试 矩阵变换
居然给想出解法了。。。。从题目中我们可以看出,每个数一定是尽量取列靠后的。如果这样一行中出现了多个数怎么办?拿纸出来画一画可以发现我们因该保留靠前的那一个而把靠后的一个再向前一列取一下。#include #include #include #include using namespace std;#define pb push_backint g[205],rk[205]原创 2015-04-05 20:32:25 · 670 阅读 · 0 评论 -
[bzoj 1049] HAOI2006数字序列
这题放了很久了,这次终于下定决心切掉他!第一问很好处理,把值减去标作为新值,求最长不下降序列即可。第二问,有一个很好的性质。还是处理第一问中的新值,发现最优解中两个不变点i,j之间的数都是小于a[i]或大于a[j],并且修改之后存在一个k使得i~k个全为a[i],后面的全为a[j]。这个性质很好利用,借鉴Mato的blog里的做法可以水(随机数据。。。。。)//Mato用理论O原创 2015-04-13 11:14:02 · 910 阅读 · 0 评论 -
codeforces17E Palisection
求母串中互相交的回文串对数。回文树练习题。求相交的不好求,但是我们很容易求出不相交的(精华所在!要学会逆向思维!)用回文树求出在此处开头和结尾的回文串非别为多少,直接搞就可以了。#include #include #include using namespace std;typedef long long LL;const int Mod=51123987;con原创 2015-04-13 11:09:27 · 853 阅读 · 0 评论 -
省选模版复习——FFT
hdu1402 大整数乘法, 裸FFT#include #include #include #include using namespace std;const int Maxn=200005;const double PI=acos(-1);char S[Maxn],T[Maxn];int ans[Maxn],n,m,i,N;struct CP{ double x,原创 2015-04-15 08:24:20 · 602 阅读 · 0 评论 -
[bzoj 3563&3569]DZY Loves Chinese I&II
3263是道sb题,随便水过去吧。。。。。3569才是正真的神题!用dfs搞出一棵生成树,把边分为树边和非树边。对于非树边我们随机分配一个数值给他,而树边上的值为覆盖其所有非树边权值的异或和。我们来看一看删边的情况:1、仅删除非树边,很明显这样一定仍是联通的。2、删除树边和非树边,只有将树边和覆盖这条树边的非树边全部删除才能使图不联通,由于我们刚刚的预处理,这些边权值的异或原创 2015-04-13 22:39:39 · 1004 阅读 · 0 评论 -
省选模版复习——后缀数组
bzoj3238 后缀数组水#include #include #include using namespace std;const int Maxn=500005;typedef long long LL;LL Ans;char S[Maxn];int H[Maxn],Rank[Maxn],q[Maxn],pre[Maxn],nxt[Maxn];int l,r,N,i,原创 2015-04-15 08:20:52 · 522 阅读 · 0 评论 -
省选模版复习——主席树
bzoj3653 谈笑风生dfs序,主席树水过去吧#include #include #include #include using namespace std;#define pb push_backtypedef long long LL;const int Maxn=300005;LL sum[Maxn*20],ans;int stk[Maxn],dep[Maxn原创 2015-04-16 08:50:23 · 525 阅读 · 0 评论 -
省选模版复习——线性筛法
bzoj 3944 sum求phi和mu的前缀和,n首先orz叉院lyp大神的讲义。以下为lyp大神讲义的公式推导过程(我不生产公式,我只是大神的搬运工~~)假设我们需要求f(x)的前缀和令g(n)=sigma f(d) (满足d|n) F(n)=sigma f(i) (1我们可以得到sigma g(i) (1 =sigma f(i)*[n/i] (1<原创 2015-04-15 19:24:54 · 595 阅读 · 0 评论 -
单纯形解线性规划
1、noi2008 志愿者招募这题更广为人知的解法是网络流建模,题解戳这里其实可以拿线性规划水过去单纯形讲义戳这里网上好多程序据若都没看懂,最后才知道他们套用了一个叫做对偶性的定理。。。。大概就是长这样:(证明就不放了,都可以在算到上找到)所以这题就可以水过去了。。。。速度确实比裸的spfa求网络流快code//最小费用最大流#include #原创 2015-04-23 19:00:03 · 733 阅读 · 0 评论 -
整体二分入门
骗分神器!推荐论文:xhr2013集训队论文能够整体二分的题目必须满足一下几点(摘自xhr论文)1、询问答案具有可二分性2、修改对答案的判定相互独立,互不影响3、如果修改对询问有贡献,则贡献是确定的,且与判定标准为无关4、贡献满足结合律、交换律,具有可加性5、题目允许离线(好像现在大部分题目强制在线)另外一个很重要的一点就是注意些整体二分时必须是的当前步骤的复杂度只原创 2015-04-24 09:40:40 · 2246 阅读 · 0 评论 -
[ural 1960] Palindromes and Super Abilities
继续练习模版。回文树。。。#include #include #include using namespace std;const int Maxn=100005;char S[Maxn];int len[Maxn],ans[Maxn],fail[Maxn];int son[Maxn][26],n,st,p,c,last,i,t;int newnode(int x){原创 2015-04-09 20:39:34 · 556 阅读 · 0 评论 -
XJOI NOI2015训练题7 题解
T1、原本以为是水题的,但是题目里有这么一句话”不模1e9+7“。。。。可以注意到上下左右都要求单调增,那么状态就很好确定了f[i][j]表示第一行放了前i个格子,第二行放了前j个格子,并且这些数都是小于等于i+j的转义很好写:f[i][j]可以推给f[i+1][j]和f[i][j+1]。需要时时保证i>j另外注意此处格子是否可放。由于不取模,需要用高精。但是实现只有0.2原创 2015-06-13 21:58:19 · 1019 阅读 · 1 评论