数学
青禾script
这个人太弱,所以也不知道能写什么23333
展开
-
[BZOJ 2705] SDOI 2012 Longge的问题 · 欧拉函数
首先这题如果想用O(N)做就too native了~所以我们就要寻求更有效的算法。其实hzwer讲得挺好的:题目中要求出∑gcd(i,N)(1枚举n的约数k,令s(k)为满足gcd(m,n)=k,(1因为gcd(m,n)=k,所以gcd(m/k,n/k)=1,于是s(k)=euler(n/k)phi可以在根号的时间内求出至于笔者一开始没想到怎么在根号时间原创 2015-04-30 18:16:08 · 459 阅读 · 0 评论 -
[HDU 4704] Sum · 费马小定理 & 快速幂
题意:给定n,设是将n分成k个数之和的方案数,求隔板原理:将n个物品分成k组,相当于在n-1个间隔中插入k-1个隔板,方案数为,所以等于,貌似是叫二项式定理来着?反正这个式子的值等于,所以就是要求的值。但是因为n非常大,所以用费马小定理降幂。科普:费马小定理:然后快速幂直接搞起。这题是多测!#include #include #include #include原创 2015-06-29 22:19:24 · 648 阅读 · 0 评论 -
[BZOJ 2190] SDOI 2008 仪仗队 · 欧拉函数
首先要知道的是,对于两个点(x1,y1) (x2,y2),如果他们的连线上不存在别的整点,也就是能直接互相看见,那么应该满足gcd(x1-x2,y1-y2)=1。对于这道题目,也就是求对于左下的那个点有多少个点死能直接看见的。为了方便,我们把左下的点设为(0,0),对于第0行和第0列,只有(0,1)和(1,0)是能直接看见的;对于剩下的1~n-1行和1~n-1列,原创 2015-09-09 14:45:39 · 557 阅读 · 0 评论 -
欧拉函数
欧拉函数今天蒟蒻的笔者学习了一下高大上的欧拉函数,写个博客打个备忘防止以后脑子一抽又不会了-_-|| 如果有什么写的不对的地方欢迎指出~ 欧拉函数phi(x)等于在[1,x]区间内和x互质的数有多少个,设p1,p2,…..,pn是x的所有不重合的质因数,那么phi(x)=x(1-1/p1)(1-1/p2)…..(1-1/pn),并且欧拉函数是个积性函数,即若满足p与q互质,则phi(pq)=ph原创 2015-03-12 10:24:53 · 761 阅读 · 0 评论 -
[BZOJ 2875 & Vijos 1725] NOI 2012 随机数生成器 · 矩阵乘法+快速乘法
矩阵乘法+快速乘法话说这种NOIP的题能出现在NOI里吓谁呢。。。x0=xx1=a*x0+c=a*x+cx2=a*x1+c=a^2*x+a*c+cx3=a*x2+c=a^3*x+a^2*c+a*c+c依次类推可以得到:xn=a^n*x+a^(n-1)*c+a^(n-2)*c+.....+a*c+c一开始笔者自己写了个矩阵结果挂掉了。。。然后看了一下CCF的题解觉得这个矩原创 2015-03-27 13:08:09 · 1007 阅读 · 0 评论 -
[HDU 3306] Another kind of Fibonacci · 矩阵快速幂
矩阵乘法一眼题。首先我们根据题意,可以得到,那么我们既然要求 ,可以通过求 ,而求就要在矩阵中维护,和所以我们可以得到这样一个矩阵原创 2015-09-04 20:22:29 · 494 阅读 · 0 评论 -
[BZOJ 2194] 快速傅立叶之二 · FFT
求这个式子不好搞啊,然后我们就把B翻一下好了!变成然后我们发现,i+(n-1-i+k)=n-1+k,只与k有关了!然后我们另,这个就很显然一个裸的卷积了,FFT模板直接上所以最后对应的是C(0~n-1)对应D(n-1,n+n-2)。#include #include #include #include #include using namespace std;#原创 2016-02-04 23:56:52 · 795 阅读 · 1 评论 -
[BZOJ 1101] POI 2007 Zap · 莫比乌斯 & 分块 超详细题解
初学莫比乌斯反演,翻了大量的题解才搞懂这题,所以决定自己写一个最详细的题解,虽然有些繁琐,但是每一步推导都十分详细。神犇就不要嘲讽我了2333首先,我们定义题目即要求由于d是给定的,所以另可以转化为,到这个地方的话题中所给的d就已经再没有用处了,不要和下文中的d混淆。由莫比乌斯函数的性质即将原本的和式转化为 ①,注意这里的d和题目中给定的d不是指的同一个东原创 2016-02-05 11:12:28 · 2529 阅读 · 1 评论 -
2016 大连 D HDU5974 A Simple Math Problem · 数论
转化成用gcd做以后,然后简化公式,结论题_(:з」∠)_(不过我算不出来就是了2333#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;#define ll long longll a,b,i,j,c,d...原创 2018-03-12 15:08:29 · 605 阅读 · 0 评论 -
[POJ 1289] The Cat in the Hat · 数学
大概就是给你两个数A和B,有且仅有一组n,k满足:然后输出 和 #include #include #include #include using namespace std;#define ll long longll A,B,n,k,sq,x,y,ans1,ans2;ll sqr( ll t , ll k ) { ll p = 1 ; while原创 2015-05-22 08:10:15 · 671 阅读 · 0 评论 -
[Vijos 1137] 组合数 · 数学
题目上的标签说的是容斥原理,但是窝怎么伪暴力就秒A了。。。把分子分母分别质因数分解,然后约掉重复的部分,最后统计。这题本来不准备写blog的,太水了,但学了一个log级别的分解质因数,顿时感觉太弱了。在欧拉筛法中,每个数只会被它最大的质因数筛去,所以我们用check[i]来表示i的最大的质因数,如果i是个质数那么check[i]=i,所以我们对于一个数t要分解质因数的时候,只要不停做t原创 2015-06-04 21:36:06 · 622 阅读 · 0 评论 -
[BZOJ 1008] HNOI 2008 越狱 · 快速幂
刚开始做这道题的时候,笔者朝着类似全排列的方向思考,想直接求出答案,发现通项会很繁琐,然后再反过来思考一下,即越狱方案数=总方案数-未越狱方案数,突然就发现这题是如此之水……如果你做这题的时候感觉有点困难,不要灰心,答案公式是很容易推出来的,如果实在还是不会的话题解在代码中。/*当直接推通项很繁琐的时候,试着换一种思路。总共有N个人,每个人有M种可能,所以总方案数=M^N原创 2015-03-12 22:31:10 · 626 阅读 · 0 评论 -
[Vijos 1603] 迷宫 · 矩阵乘法
矩阵乘法本来准备按顺序把VJ上矩乘的题按顺序A掉的,结果一看到这题顿时就感觉应该先做这题再做Domino那题的。。。对于一开始的矩阵G,G[i][j]=1表示i到j可以走,同时也表示从i走一步到j的方案数=1;如果G变成G*G,G[i][j]就表示从i走两步到j的方案数;依次类推。那么要求从s到f走m步的方案数,我们只需要将一开始的矩阵自乘m次,G[i][j]就是所求的结果。#incl原创 2015-03-26 22:42:02 · 686 阅读 · 0 评论 -
[Vijos 1194] Domino · 矩阵乘法 (附运算符优先级表)
对新手来说也算是很好的一条矩阵乘法题。基础应该是状压DP,但是n<10^9,所以要用矩阵快速幂来加速。原创 2015-03-26 12:32:03 · 1008 阅读 · 0 评论 -
[BZOJ 1303] CQOI 2009 中位数图 · 数学
一个大于b的数和一个小于b的数可以互相抵消,所以我们用1和-1表示。从b向两边扩展,left[i]表示b左边抵消后有i个数比b小的可能数,right[i]表示b右边抵消后有i个数比b大的可能数。乘法原理得ans=sigma(left[i]*right[i]).#include #include #include #include using namespace std;cons原创 2015-06-19 10:18:30 · 1115 阅读 · 0 评论 -
[BZOJ 2326] HNOI 2011 数学作业 · 矩阵乘法
对于k位数,我们设计一个矩阵:初始矩阵 [ 0 0 1 ]然后就是分段矩乘,0~9,10~99,100~999,......(没必要用快速乘,因为肯定不会爆long long)#include #include #include #include using namespace std;#define ll long longll n,m,t;struct原创 2015-05-01 08:38:22 · 412 阅读 · 0 评论 -
[BZOJ 2818] gcd · 欧拉函数
欧拉函数。随意感受一下,大概就是要你求这个东西:但是N 其中K是从[1,N]的素数。再稍微观察一下就又发现,其实这个公式后面半部分就是phi(i),那么公式就进一步简化为:求phi(i)可以用筛法O(N)预处理,后面枚举部分是O(K*(N/K))即O(N),所以总复杂度就是O(N),对于题中N#include #include #include #incl原创 2015-03-11 23:14:43 · 732 阅读 · 0 评论 -
[BZOJ 1875] SDOI 2009 HH去散步 · 矩阵乘法
矩阵乘法。这题等于是VJ1603的略强化版,就是多了个不允许走回头路,我们把一条双向边建成两条方向相反的单向边,和网络流的建边一个方法,然后直接二维扫一遍建矩阵,a[i][j]=1表示从i号边下一步可以走到j号边,然后就做矩乘啦~然后再二维扫一遍出答案啦~然后笔者就妥妥的TLE啦~当时看到TLE也是吓的不轻,实在是想不懂这种复杂度怎么会超时……然后就加了个读入优化顺便删掉iostream库原创 2015-04-01 23:00:49 · 577 阅读 · 0 评论 -
[BZOJ 1009] HNOI 2008 GT考试 · 动态规划+矩阵乘法+KMP
KMP预处理,矩阵乘法加速DP。刷了这么多矩阵乘法怎么感觉还是没什么进步。。。这题就算是一条比较好的用矩阵加速DP的题目了,感觉还是有点难度的可是为什么AC率那么高。。。难道是我太弱了么。。。还是就不要班门弄斧了,两个神犇的友链,写的很好:http://blog.csdn.net/popoqqq/article/details/40188173 http://blog.csdn原创 2015-04-04 11:37:20 · 874 阅读 · 3 评论 -
2016 大连 F HDU 5976 Detachment · 逆元+数学分析
仰慕:http://blog.csdn.net/qq_34374664/article/details/53466435#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;#define f(i,x,y) for...原创 2018-03-12 15:29:58 · 253 阅读 · 0 评论