数论
文章平均质量分 73
天使v之翼
Keep on fighting!
展开
-
2016湖大校赛 L题 The Sequence likes Ladder
欧拉定理 快速矩阵幂原创 2016-05-26 20:27:19 · 995 阅读 · 0 评论 -
快速沃尔什变换(FWT)讲解 解决集合卷积的方法
能看到这篇博客的人,一定知道FWT是干什么的。(什么?你不知道?) 没事,这里有picks讲FWT的一篇博客。先点进去看一看。如果你看懂了,那么恭喜你。如果你跟我一样看不懂,那么请继续往下看。这里的A和B都是什么呢?其实它们是一个多维的向量(如果你不知道向量是什么,就把它当成数组),下标从0开始。 其中,A=<a0,a1,...,a2k−1>B=<b0,b1,...,b2k−1&...转载 2017-04-29 23:11:20 · 12870 阅读 · 5 评论 -
北京网赛 F题 hiho1388 Periodic Signal
首先式子可以化为Ai^2+Bi^2-2*Ai*Bi;显然前面两项是一个定值,那么只需要求后面的最大值即可,但是枚举是O(n^2)的时间复杂度,超时是无疑的,那么对于这种卷积的形式,可以用到FFT,但是考虑到Ai,Bi数据很大,FFT精度就不够了,那么改用NTT。把A复制一遍放到末尾,B反转,构造多项式,这样多项式乘积指数[n,2n)的系数就是各个位置的结果了。再取一个最大值即可。#in原创 2016-09-25 15:52:48 · 443 阅读 · 0 评论 -
沈阳网赛1003 HDU 5894 hannnnah_j’s Biological Test
考虑每两个人之间隔了几把椅子。可以发现,一共有m个数,和为n-m,且每个数都>=k.将每个数都减去k-1,即得到:m个正数之和为n-k*m,方案数为C(n-k*m-1,m-1).需要乘以圆排列的N,同时每个方案被算了M次,再除以M。这种组合数预处理阶乘可以做,直接Lcaus也行。#include#include#includeusing namespace std;#define原创 2016-09-18 20:37:43 · 1570 阅读 · 0 评论 -
沈阳网赛1010 HDU 5901 Count primes
求前n个数中质数的个数。这里要用到Meisell-Lehmer的n^(2/3)的方法,借用了一大牛的板子。//Meisell-Lehmer#include#includeusing namespace std;#define LL long longconst int N = 5e6 + 2;bool np[N];int prime[N], pi[N];int getp原创 2016-09-18 20:10:33 · 1894 阅读 · 0 评论 -
51node 1419 最小公倍数挑战
几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。(n首先考虑n为奇数,显然n,n-1,n-2这三个数互质,结果为三者乘积;再考虑n为偶数,结果为max( (n-1)*(n-2)*(n-3),n*(n-1)*i ) i为最大的与n和n-1都互质的数。最后特殊处理一下n#include#in原创 2016-09-05 23:30:08 · 538 阅读 · 0 评论 -
51node 1678 lyk与gcd
这天,lyk又和gcd杠上了。它拥有一个n个数的数列,它想实现两种操作。1:将 ai 改为b。2:给定一个数i,求所有 gcd(i,j)=1 时的 aj 的总和。n,Q(1<=n,Q<=100000)ai(1<=ai<=10^4)刚开始还以为可以用线段树维护,想了好久都不知道怎么维护,好像压根就维护不了。对于统计gcd(i,j)=1的和比较难,原创 2016-09-04 16:44:08 · 861 阅读 · 0 评论 -
51node 1537 分解
问(1+sqrt(2)) ^n 能否分解成 sqrt(m) +sqrt(m-1)的形式 如果可以 输出 m%1e9+7 否则 输出no刚开始看这题的时候是一脸懵逼,之后便暴力跑了几组数据出来瞅瞅,瞅了有一会儿发现一个递推式,即F(n)=7*F(n-1)-7*f(n-2)+f(n-3),那么接下来构造一个3*3矩阵便迎刃而解了。A完之后又想了想,只要是(sqrt(x)+sqrt(x原创 2016-09-04 16:25:30 · 561 阅读 · 0 评论 -
51nod 1358 浮波那契
构造新数列f(n)=f(n-10)+f(n-34),n>40,f(n)=1,n<=40,则FB(n)=f(10n)#include#include#includeusing namespace std;#define LL long longconst int p=1e9+7;struct Matrix{ LL a[35][35]; Matrix(){memse原创 2016-09-13 00:34:40 · 618 阅读 · 0 评论 -
SGU 275 高斯消元
#include#include#include#include#define LL long longusing namespace std;const int maxn=110;int a[64][maxn];int n;LL x;LL gauss(){ int row,col; row=64-1; LL ans=0; for(;row>=原创 2016-08-17 16:21:34 · 390 阅读 · 0 评论 -
POJ 1830 开关问题 高斯消元
题意:给你N个开关,其中某些开关之间是相互影响的,即一个开关控制多个,那么每个开关操作与否为一个变元,有N个变元,开关之间相互影响的系数设为1,否则为0,对模2高斯消元求解自由变元个数。#include#include#include#includeusing namespace std;const int maxn=30;int n,m;//有n个方程,m个未知数int原创 2016-08-16 10:59:31 · 307 阅读 · 0 评论 -
HDU 5833 高斯消元
首先,一个完全平方数的每个质因子的幂一定是偶数。对每个数进行质因数分解,令其中幂为奇数的系数为1即可。#include#include#include#includeusing namespace std;#define LL long longconst int mod=1000000007;const int maxn=305;int n,m;//有n个方程,m个未知数i原创 2016-08-15 18:30:01 · 440 阅读 · 0 评论 -
高斯消元原理
高消一直是ACM中高层次经常用到的算法,虽然线性代数已经学过,但高消求解的问题模型及高消模板的应用变化是高消的最复杂之处。先介绍一下高消的基本原理:引入互联网czyuan的帖子:高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所原创 2016-08-15 16:30:30 · 4799 阅读 · 0 评论 -
HDU 3221 Brute-force Algorithm
欧拉降幂 矩阵快速幂 斐波那契原创 2016-05-26 22:26:16 · 908 阅读 · 0 评论 -
CSU 1911 Card Game 快速沃尔什变换(FWT)模板题
题意:给你两个二进制数的集合,给出q次询问,输出两个集合之间元素或的值等于查询值的种数。 #include#include#includeusing namespace std;#define LL long longconst int maxn = 1LL a[maxn],b[maxn];int n,m;char s[20];void FWT(LL a原创 2017-04-29 23:15:53 · 1335 阅读 · 0 评论