
数学/数论
NotFound1
这个作者很懒,什么都没留下…
展开
-
|洛谷|数学|P1403 约数研究
http://www.luogu.org/problem/show?pid=1403#sub枚举一个数的约数肯定超时,那我们反过来想。枚举1~n里约数i有多少个,那么很明显如果n=10,那么约数1有10/1=10个,约数2有10/2=5个,约数3有10/3=3个……#include#include#include#include#define ms(i,j) memset(i,原创 2016-09-24 15:16:25 · 359 阅读 · 0 评论 -
|poj 1995|快速幂|Raising Modulo Numbers
poj传送门根据题目公式 (AB11+AB22+...+ABhh)modM(A_1^{B_1}+A_2^{B_2}+ ... +A_h^{B_h})\mod M 快速幂即可#include<cstdio> #include<algorithm> #include<cstring> #include<cmath>#define ms(i,j) memset(i,j, sizeof i原创 2017-03-12 21:35:26 · 401 阅读 · 0 评论 -
|poj 2478|欧拉函数|Farey Sequence
poj传送门 筛选法求欧拉函数每个询问答案是∑1nφ(n)\sum_1^n\varphi(n)#include<cstdio> #include<algorithm> #include<cstring> #include<cmath>#define ms(i,j) memset(i,j, sizeof i);using namespace std;#define ll long原创 2017-03-12 19:14:01 · 587 阅读 · 0 评论 -
|BZOJ 1477|扩展欧几里得算法|青蛙的约会
BZOJ传送门 luogu免权限地址 扩展欧几里得算法,由题可列(x+m∗t)≡(y+n∗t)(modL)(x+m*t)\equiv (y+n*t)\pmod L,其中tt为所求 由同余性质得:(x+m∗t)−(y+n∗t)=Lk(x+m*t)-(y+n*t)=Lk 变形得:(n−m)t+lk=x−y(n-m)t+lk=x-y,则转换为ax+by=cax+by=c的形式#include<cs原创 2017-02-02 22:08:09 · 817 阅读 · 0 评论 -
|poj 1006|中国剩余定理|Biorhythms
poj传送门 裸的中国剩余定理,注意一下负数的情况即可#include<cstdio> #include<algorithm> #include<cstring> #define ms(i,j) memset(i,j, sizeof i); #define ll long longusing namespace std;int p, e, i, d;int原创 2017-02-03 23:17:24 · 869 阅读 · 0 评论 -
|poj 2407|欧拉函数|Relatives
poj传送门 简单的求φ(n)\varphi(n),复习了一下模板#include<cstdio> #include<algorithm> #include<cstring> #include<cmath>#define ms(i,j) memset(i,j, sizeof i);using namespace std;int phi(int n){ int m = s原创 2017-03-12 18:08:17 · 533 阅读 · 0 评论 -
|洛谷|数学|P2415 集合求和
https://www.luogu.org/wiki/show?name=%E9%A2%98%E8%A7%A3+P2415可以发现集合中的元素在所有子集中出现了2^n次,算出总和*2^n即可,但要处理重复,最终答案要除以二#include#include#includeusing namespace std;#define ms(i,j) memset(i, j, sizeof i原创 2016-11-27 10:43:03 · 687 阅读 · 0 评论 -
|洛谷|分治|数学|P1226 取余运算||快速幂
http://www.luogu.org/problem/show?pid=1226快速幂取余。#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int poww(int a, int b, int c){ int ans = 1, base =原创 2016-09-25 14:33:15 · 387 阅读 · 0 评论 -
|洛谷|数学|P1029 最大公约数和最小公倍数问题
http://www.luogu.org/problem/show?pid=1029由lcm(a,b)=a*b/gcd(a,b)得 a*b = lcm(a,b)*gcd(a,b)设给出两个整数为x,y,要求的两个数为R,Q 原式变为R*Q=x*y变形得 Q = (x*y)/R;然后枚举P,就可以求出Q,继而得出解#include#include#include#inclu原创 2016-09-24 23:30:15 · 416 阅读 · 0 评论 -
|洛谷|数学|P1088 火星人
http://www.luogu.org/problem/show?pid=1088求字典序第k大全排列,可以用C++的next_permutation函数#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int a[10005];int main原创 2016-09-24 22:54:30 · 367 阅读 · 0 评论 -
|洛谷|数学|P1147 连续自然数和
http://www.luogu.org/problem/show?pid=1147利用了数学公式求等差数列之和公式(s1+sn)*n/2#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int main(){ int n; sca原创 2016-09-24 21:36:32 · 577 阅读 · 0 评论 -
|算法讨论|数论数学 学习笔记
题目 [数论]BZOJ 1477:裸的扩展欧几里得算法 [数论]poj 1006:裸的中国剩余定理模板及讲解欧几里得算法求gcd(a, b),即a和b的最大公倍数 欧几里得算法: gcd(a,b)=gcd(b,a%b)gcd(a, b) = gcd(b, a \% b)int gcd(int a, int b){ if (b==0) return a; gcd(b, a%b原创 2017-02-01 12:11:35 · 607 阅读 · 0 评论