数论
夕伤夜残
Stay hungry,Stay foolish.
展开
-
构造等比数列,求数列通项。
突然想起了高中的知识,用c语言实现了一下。对于形如a(n)=p*a(n-1)+h(n) (h(n)是多项式,p!=1)(p==1的话你可以用累加法求)``我们可以构造一个公比为q的等比数列, 达到求通项的目的。详细步骤见链接:别人的知乎回答我们只需 O(n^2)的时间,就可以实现O(1)时间的查询,这个时间比矩阵快速幂更快,而且你不用去构造关系矩阵,省去了思维时间。#include<...原创 2019-04-04 14:57:25 · 3545 阅读 · 0 评论 -
HDU6624(辗转相除法)
题目链接思路来源#include<bits/stdc++.h>using namespace std;typedef long long ll;// p/x<b/c<p/(x-1)//传参数代表的值 void solve(ll pa,ll pb,ll qa,ll qb,ll &x,ll &y){ ll z=(pa+pb-1)/pb;//得到向...原创 2019-09-27 15:30:48 · 208 阅读 · 0 评论 -
2019牛客暑期多校训练营(第三场)D题Big Integer
很好的题解思路博客代码思路和上面博客一样#include<bits/stdc++.h>using namespace std;typedef long long ll;ll n,m,p,a[105],b[105],r,cnt;ll cal(ll x){//分解x得到分解后的因子a和指数b cnt=0; int j=2; while(j*j<=x){ i...原创 2019-08-13 16:59:37 · 167 阅读 · 0 评论 -
反素数模板(1-n因子数最多的数,或者求约数最多的个数)
这篇博客不错转载一下转载 2019-06-22 11:29:56 · 283 阅读 · 0 评论 -
牛客练习赛48B题
传送门hash解法这一题用hash解非常简单,为了防止hash冲突,可以使用多重hash,这里用了双层。#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn = 1e5 + 10, N = 1e5;const int mod1 = 1e9 + 7, mod2 = 99...原创 2019-06-22 11:15:03 · 282 阅读 · 0 评论 -
E. Product Oriented Recurrence(codeforces R566 div2)
这题bsgs也可以做,有时间来填一下坑。思路有时间再来写,这段时间有课。。。先写一下注释#include<bits/stdc++.h>using namespace std;typedef long long ll;ll mod=1e9+7;ll fm(ll x,ll y){//快速乘防爆ll,虽然这题也不会爆。。 int ret=0; while(y){ ...原创 2019-06-12 12:57:31 · 273 阅读 · 2 评论 -
Lightoj1220三种解法(唯一分解,二分答案,pow开根)
二分答案的算法原理比较简单,我不详细讲了。但是,有时候比赛的时候,自己想半天想不出解法,然后一看题解,哦!原来是用二分啊。。。。。那什么时候使用二分呢?当你的答案存在于一个单调区间时,并且你有一个判断标准来衡量答案是比这个标准值更大或更小(也可以是其他形式的比较,你需要把它构造成二分)。就可以往二分这方面去想。比如答案存在的单调区间,有时间的先后,序列长短,物体轻重,数值的大小等关系的一种,我...原创 2019-06-01 13:32:04 · 268 阅读 · 0 评论 -
整除分块栗子
在一些数论题中,经常会碰到类似这样的式子:∑i=1n⌊n/i⌋\sum_{i=1}^{n}\left \lfloor n/i \right \rfloori=1∑n⌊n/i⌋这个式子看似需要O(n)的时间复杂度计算,但实际上并不需要,因为有时候对于不同的i, ⌊n/i⌋\left \lfloor n/i \right \rfloor⌊n/i⌋的结果是一样的,所以我们可以通过整除分块来得到一个...原创 2019-05-24 11:19:41 · 154 阅读 · 0 评论 -
B.Icebound and Sequence(2019河北省大学生程序设计竞赛)
当时一看题面想着用欧拉降幂做(其实不用这样做,因为幂不是一个大整数,貌似算欧拉函数还更耗时间),做半天也做不出,因为不知道在模运算下怎么处理等比数列分母。赛后听别人说是个模板题,思想类似快速幂(还是题目做少了QAQ)解法1,2的分析来自这里:ACdreamers的分析//B解法1#include <iostream>#include <string>#inclu...原创 2019-05-26 13:51:31 · 415 阅读 · 0 评论 -
常用逆元总结
乘法逆元在mod运算里非常重要,一下总结一些常用的逆元,假设我们有式子:ans=abmod  mans=\frac{a}{b}\mod mans=bamodm当m为素数p时,b的逆元为pow(b,m-2); 用快速幂计算该逆元即可ans=abmod  m=a×pow(b,m...原创 2019-05-26 13:45:13 · 488 阅读 · 0 评论 -
ZOJ4040(唯一分解定理)
题意是给你一个数n,你要求用n的不同的因子组成的和,能从1开始连续到多少。首先我们可以通过一个数的唯一分解求的其所有因子和,如下这个公式还有另外一种边形:#include<cstdio>#include<cstring>#include<cmath>using namespace std;typedef long long ll;const i...原创 2019-05-22 12:11:40 · 157 阅读 · 0 评论 -
POJ1061
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;typedef long long ll;//同余方程,拓展欧几里得 //求解(m-n)a+Lk=...原创 2019-05-11 17:55:20 · 108 阅读 · 0 评论 -
LightOJ1234(Harmonic Number)
解法1(分块打表)将打表结果分块,解决内存不足的问题,是一个很实用的技巧。#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;typedef long lo...原创 2019-05-08 17:03:24 · 173 阅读 · 0 评论 -
唯一分解定理的应用
求一个数的因子个数(LightOJ1341)在这里插入代码片原创 2019-05-05 22:45:29 · 264 阅读 · 0 评论 -
用容斥原理解决素数筛类似问题
平方因子个数Problem:DTime Limit:1000msMemory Limit:65535KDescription给出一个n,求1-n中因子不包含除1以外的平方数的数有多少个?Input输入T,T组数据 T<=1000输入N<=1000,000,000Output输出个数Sample Input223Sample Output23当时看到这...原创 2019-04-09 22:18:27 · 544 阅读 · 0 评论 -
UVa12716 gcd等于xor(打表+类素数筛+差分约束)
转载,写的不错转载 2019-04-09 08:56:46 · 172 阅读 · 0 评论 -
HDU6470广东工业场
矩阵快速幂裸题,推出关系矩阵就行#include<iostream>#include<cstdio>#include<cstring>using namespace std;typedef long long ll;const int mod = 123456789,N=6;//c++超时,G++过了 struct matrix{ ll t[6...原创 2019-03-27 23:25:25 · 156 阅读 · 0 评论 -
2019ICPC西安邀请赛 B. Product(杜教筛,数论分块)详细题解
B. Product第一次写此类推导证明题目题解,就写详细点。题意求:ans=∏i=1n∏j=1n∏k=1nmgcd(i,j)[k∣gcd(i,j)]mod  p(n,m,p<2e9,且p为质数)ans=\prod_{i=1}^{n}\prod_{j=1}^{n}\prod_{k=1}^{n}m^{gcd(i,j)[k|...原创 2019-09-27 15:31:56 · 407 阅读 · 0 评论