数论
文章平均质量分 55
Aoxuets
REM 是我的, 拔剑吧!
展开
-
51nod--1240莫比乌斯函数 (数论)
题目:1240 莫比乌斯函数 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号。(据说,高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数)。 具体定义如下: 如果一个数包含平方因子,那么miu(n) = 0。例如:m原创 2016-03-15 18:05:09 · 554 阅读 · 0 评论 -
学弟学妹的数学测试
抽了窝bin 的数论中 几道比较基础的数学题, 来给学弟学妹入门这方面知识。链接 密码 hutacm第一题: Light OJ 1336 题意: F(n) 是 n 的约数的和。 题目求 1 - n 中有多少 F(n) 为偶数。 思路: 题目给你了 相关知识, 一个数 n 可以表示成 n=∏pi^ei 而 F(n) = (p1^(e1+1)-1)/(p1-1))*(p2^原创 2016-03-14 11:00:33 · 486 阅读 · 0 评论 -
数位DP
CodeForces 55D : Beautiful numbers题意 : 求 【L,R】之间能被自己每一位非0数整除的数的个数。1-9的LCM是比较小的, 但是直接开会爆, 需要离散化, 这题关键 lcm 和 离散了#includeusing namespace std;const int maxn = 2520;int gcd(int a, int b) {r原创 2016-03-14 11:00:27 · 346 阅读 · 0 评论 -
HDU 5514
题意: 给你 N 个数 和 一个 M; 对于 每一个 Ni , 乘以 K 取摸 M 都有一个 集合, 把所有集合合并, 求和 Σ ai ( ai → K * Ni % M )思路 : 最开始 直接求一边gcd , 然后容斥。。。。 结果状态有 2 ^ (1e4).... 反着求 M 的约数, 然后记录要用到的约数, 对于这些进行容斥就好了(原创 2016-03-14 11:00:16 · 425 阅读 · 0 评论 -
HDU 5446
题意: 大组合数取余 (素数连乘)思路:对于答案 XX % pi = ai === C(m,n) % pi;然后就是用孙子定理求出X, ai 用 卢卡斯定理求得中间 LL * LL 会爆, 运用按位乘法对于 m * n % K, 把 m 看成 二进制形式的多项式, 拆开和 n 相乘, 再取余#include using namespace std;cons原创 2016-03-14 10:55:46 · 328 阅读 · 0 评论 -
HDU 4549
水题: 费马小定理+快速幂+矩阵快速幂 (第一次用到费马小定理) #includeusing namespace std;typedef long long LL;const LL MOD = 1000000006;const LL MOD1 = 1000000007;struct Matrix{ LL NUM[2][2]; Matrix operat原创 2016-03-14 10:55:20 · 409 阅读 · 0 评论 -
51nod--1256 乘法逆元 (扩展欧几里得)
题目:1256 乘法逆元 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。 Input 输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9) Output 输出一个数K,满足0 <原创 2016-03-15 11:08:44 · 524 阅读 · 0 评论 -
CodeVs 3150 (大数 + 递推)
#include#include#include#includestring>#include#include#include#includeset>#include#include#include//#includeusing namespace std;typedef long long LL;typedef unsigned long原创 2016-03-14 10:54:04 · 298 阅读 · 0 评论 -
LIght OJ 1179
题意: 约瑟夫环问题, 给你N 个人, 没K个出队, 问最后剩下的人的编号。思路: 直接模拟会T, 对于N个人 , 是一个约瑟夫环问题, 当第一个人出队后, (标号一定为 k % n -1) 剩下的 (N - 1) 个人 为 k%n, k%n+1, .....n, 0, 1, ...... k%n - 2; 重新编个号 :为 0 , 1, 2, .... n-1原创 2016-03-14 10:59:58 · 458 阅读 · 0 评论 -
Light OJ 1116
基础数学:..#includeusing namespace std;typedef unsigned long long ULL;int main(){ int t; scanf("%d",&t); for(int kase = 1; kase <= t; ++kase) { ULL W; sca原创 2016-03-14 10:59:54 · 437 阅读 · 0 评论 -
Light OJ 1078
题意: 给你 N,K 输出 KKKK.....KK能整除 N, 输出 K 的个数, (最小)基础数学, 取摸运算即可。#includeusing namespace std;typedef long long LL;int main(){ int t; scanf("%d",&t); for(int kase = 1; kase <= t;原创 2016-03-14 10:59:51 · 285 阅读 · 0 评论 -
51nod--1135 原根 (数论)
题目:设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数) 给出1个质数P,找出P最小的原根。 Input 输入1个质数P(3 <= P <= 10^9) Output 输出P最小的原根。 Input示例 3 Output示例 2分析:原根的板子题了。 原根知识详解: 点我萌萌哒实现:#include <bits/stdc+原创 2016-03-23 18:32:19 · 568 阅读 · 0 评论 -
51nod--1079 中国剩余定理
题目:1079 中国剩余定理 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K。例如,K % 2 = 1, K % 3 = 2, K % 5 = 3。符合条件的最小的K = 23。 Input 第1行:1个数N表示后面输入的质数及模的数量。(2 <= N <= 10) 第2 - N原创 2016-03-22 10:20:08 · 282 阅读 · 0 评论 -
51nod--1242 斐波那契数列第N项 (矩阵乘法优化)
题目:1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 斐波那契数列的定义如下:F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, …) 给出n,求F(n)原创 2016-03-15 19:40:19 · 666 阅读 · 0 评论 -
HDU 4648
题意 :给你 N 个数, 和 mod M; 求 N 个数中 啪去 连续K 个数后 mod M 不变 的 K 的 MAx; DP : 其实就是找连续K个数的和为M的倍数 吧前缀和 mod M 记录下来,计算出现的间距最长就有了 #include#include#includetypedef long long ll;using namespace std;const int ma原创 2016-03-14 10:54:57 · 357 阅读 · 0 评论 -
HDU 5407
题意 : 给你一个 N 求 C(N,1 to N ) 的LCM; 有定理: (不会推) g (n ) = C(N,1 to N ) 的LCM, f (n ) = Lcm ( 1, to n) g ( n ) = f(n + 1 ) / ( n + 1 ); f ( n ) = f (n –1 ) * p (( if n 为 质数 p 的k 次方数)原创 2016-03-14 10:54:48 · 369 阅读 · 0 评论 -
LA 3263 (欧拉定理)
欧拉定理题意: 给你N 个点,按顺序一笔画完连成一个多边形 求这个平面被分为多少个区间 欧拉定理 : 平面上边为 n ,点为 c 则 区间为 n + 2 - c; 思路: 先扫,两两线段的交点,存下来,有可能会有重复点, 用STL unique 去重 在把每个点判断是否在线段上,有,则会多出一条线段(不包括端点的点) 这样就得出结果了 O(n * n ) /// 这题还有点卡精度, 1e-11原创 2016-03-14 10:54:42 · 582 阅读 · 0 评论 -
HDU 1394
题意 :求 循环序列的最小逆序数 线段树求出最初的逆序数, 吧 Num[1] 移动到 最后一位, 逆序数减少 Num【1】-1,单比Num【1】大的有 n - Num【1】个 ,又会增加 n - Num【1】个 故可快速求出 最小逆序数 #include#include#include#define lson l, m, rt<<1#define rson m+1, r, rt <原创 2016-03-14 10:54:35 · 235 阅读 · 0 评论 -
POJ 1305
毕达哥斯三元组的模板题 练习练习 #include#include#include#include#includeusing namespace std;typedef long long ll;const int maxn = 1e6 +131;bool Jug[maxn];int ans, sum;int gcd(int a,int b){原创 2016-03-14 10:54:28 · 640 阅读 · 0 评论 -
HDU 1695 GCD
给你两个区间 问分别从区间中取一个数 ,然后其GCD == k有多少种取法题目 可知 区间 均为 1 - n;对于 k gcd (a , b ) = k; 则 gcd (a / k, b / k ) = 1;则可枚举 x , 对于 y ; y 《 x 既是 Phi【x】 (欧拉函数值)y 》 x ,用容斥原理, 统计出 x 的 质因数的倍数的个数 ,再减去这个值即可#i原创 2016-03-14 10:54:12 · 249 阅读 · 0 评论 -
HDU 5377 (Exgcd + 原根)
转载自:大牛知道一个定理了 a ^ x = y (mod p)===>> logd(a) * x = logd(y) (mod O(p) ) d 为 p 的 原根, O(p) 是欧拉函数值好难的题………..原创 2016-03-14 10:54:08 · 441 阅读 · 0 评论 -
POJ 1006 同余方程组
以前的做法#include#include#include#includeusing namespace std;typedef long long LL;LL ai[4],ri[4],M;void Exgcd(LL a,LL b,LL& d,LL& x,LL& y){ if(b == 0) { d = a, x = 1, y = 0;}原创 2016-03-14 10:53:59 · 289 阅读 · 0 评论 -
51nod--1181 质数中的质数(质数筛法)
题目1181 质数中的质数(质数筛法) 题目来源: Sgu 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。 Input 输入一个数N(N原创 2016-03-21 20:48:13 · 338 阅读 · 0 评论 -
Light OJ 1007
求区间欧拉函数平方和。。。最后因为longlong 范围爆了WA 了, 0.0#includeusing namespace std;const int maxn = 5000000 + 131;typedef unsigned long long LL;bool Com[maxn];LL Num[maxn], Prim[maxn / 3];int Cnt;原创 2016-03-14 10:59:38 · 405 阅读 · 0 评论