数论——基本定理
文章平均质量分 76
HARD_UNDERSTAND
Just try
展开
-
hdu 4549 矩阵快速幂+费马小定理
题目: M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据; 每组数据占一行,包含3个整数a, b, n( 0 <= a, b, n <= 10^9 ) Output 对每组测试数据请输出一个原创 2016-03-22 22:20:05 · 466 阅读 · 0 评论 -
UVa 10791 和最小的LCM (质因数分解)
题意: 输入正整数n(n<=2^31-1),找到至少两个正整数,使得他们的LCM为n,并且和是最小。分析: 这题昨天做的,WA的我一脸懵逼QAQ,刚刚又看了下,原来我看成了是两个整数,把至少这俩字漏看了QAQ。 如果是至少两个数的话,那么就非常简单了,只需要把质因数(次方)求和即可(因为可以是很多数的LCM) 此题需注意的情况: (1)当N = 1时,应输出2(1*1=1原创 2016-08-09 22:18:27 · 263 阅读 · 0 评论 -
sgu 499. Greatest Greatest Common Divisor(枚举因子)
题目:http://acm.sgu.ru/problem.php?contest=0&problem=499 题意: 给出n(1e6)个数,求其中一对的最大公因数。分析: 这题挺简单的,但是想了好久,刚开始想分解质因数,然后找公共质因数积最大的两个数。但是不好搞。想了好久,突然想到可以枚举因子啊!然后顺利1A。还是思维有点迟钝QAQ,应该可以更快想出来的。代码:const int N原创 2016-09-15 09:28:13 · 531 阅读 · 0 评论 -
poj 3373 数论常识(数位dp)
题目:http://poj.org/problem?id=3373 题意: 给出2个整数n(n<10^100)和k(k<10000),求满足以下条件的整数m 1、m与n位数相同 2、m能被k整除 3、满足以上两点时,m和n在相同位置的地方,数字不同的个数最少 4、满足以上三点时,m值最小分析: 这题很容易想到怎么做: dp[i][j][num]表示前i原创 2016-09-15 09:57:17 · 312 阅读 · 0 评论 -
ural 1032 Find a Multiple (鸽巢原理)
题目:http://acm.timus.ru/problem.aspx?space=1&num=1032 题意: 给出N个数,要求从这N个数中选出一些数,使得这些数的和是N的倍数,如果能够找到这样的组合,则输出选出的数的个数和这些数,否则输出0分析: 作为一个数论渣,如此水题也想了好久QAQ。 N个数,前缀和%N,必定有两个数相等,那么这两个数之间的数的和就是N的倍数。代码:co原创 2016-09-15 10:23:36 · 370 阅读 · 0 评论 -
SGU 141 Jumping Joe(扩展欧几里得)
题目: Description 给出x1,x2,p,k,求一组非负整数解(p1,n1,p2,n2)满足: p1+n1+p2+n2=k,(p1-n1)*x1+(p2-n2)*x2=p Input 四个整数x1,x2,p,k(0< x1,x2< 40000,-40000< p< 40000,0<=k< 200000000) Output 如果存在一组非负整数解则输原创 2016-09-06 11:15:13 · 288 阅读 · 0 评论 -
51nod 1434 区间LCM【数论】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1434题意:一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X。 例如,LCM(2)=2,LCM(4,6)=12,LCM(1,2,3,4,5)=60。 现在给定一个整数N(1<=N<=1000000),需要找到原创 2017-03-02 17:00:37 · 458 阅读 · 0 评论 -
51nod 1441 士兵的数字游戏【素数筛】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1441题意:两个士兵正在玩一个游戏,游戏开始的时候,第一个士兵为第二个士兵选一个正整数n。然后第二个士兵要玩尽可能多的轮数。每一轮要选择一个正整数x>1,且n要是x的倍数,然后用n/x去代替n。当n变成1的时候,游戏就结束了,第二个士兵所得的分数就是他玩游戏的轮数。为了原创 2017-03-03 17:26:49 · 275 阅读 · 0 评论 -
hihoCoder [Offer收割]编程练习赛8【数论,dfs,dp,容斥】
题目:http://hihocoder.com/contest/offers8/problems【我只是简单地mark一下,看详细题解的请戳这里】A题肯定L和D的最大公因数肯定是循环节,然后直接暴力模拟即可。#include<bits/stdc++.h>using namespace std;typedef long long ll;int main() { int T; sc原创 2017-03-07 19:43:27 · 420 阅读 · 0 评论 -
UVa 10892 LCM的个数 (GCD和LCM 质因数分解)
题意: 输入正整数n(n< 2e9),统计有多少对正整数a<=b,满足lcm(a,b)=n?分析: 设n=lcm(a,b)=(p1^r1)* (p2^r2)* (p3^r3)…(pm^rm) 又设a=(p1^a1)* (p2^a2)* ( p3^a3)…(pm^am),b=(p1^b1)(p2^b2)(p3^b3)…(pm^bm) 则由lcm的定义有ri=max{ai,b原创 2016-08-07 20:02:40 · 516 阅读 · 6 评论 -
UVa 10780 幂和阶乘 求n!中某个因子的个数
题意: 输入两个整数m和n(m<5000,n<10000),求最大的整数k使得m^k是n!的约数分析: 显然这题的做法是把m分解质因子,每个质因子的个数是cnt[i],然后求一下n!中m的质因子的个数num[i],那么答案就是ans=min(ans,num[i]/cnt[i])。求n!中某个因子的个数,因为n<10000,所以直接枚举每个数i(i< x)统计即可。const int N=原创 2016-08-07 17:00:07 · 386 阅读 · 0 评论 -
UVa 11859 除法游戏(Nim游戏,质因子)
题意: 有一个n * m的矩阵,每个元素均为2~10000之间的正整数,两个游戏者轮流操作。每次可选一行中的1个或者多个大于1的整数把它们中的每个数都变成它的某个真因子,比如12可以变成1,2,3,4,5.不能操作的输,也就是说,谁在操作之前,矩阵中的所有数是1,则输。题目要求判断第一个人是否能获胜。分析: 考虑每个数包含的素因子的个数,那么让一个数变为它的真因子等价于拿掉他的一个或多个素原创 2016-08-06 16:19:12 · 360 阅读 · 0 评论 -
BestCoder Round #84
AaronsonAccepts: 607Submissions: 1869Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)问题描述给出一个不定方程x0+2x1+4x2+...+2mxm=nx_{0}+2x_{1}+4x_{2}+...+2^{原创 2016-07-24 00:17:22 · 430 阅读 · 0 评论 -
BestCoder Round #85 抽屉原理/贪心/质因数
hdu 5776 sum题意: 给一个n个数的数列,求是否存在一个连续和是m的倍数,存在输出YES。 分析: 预处理前缀和,一旦有两个数模m的值相同,说明中间一部分连续子列可以组成m的倍数。 另外,利用抽屉原理,我们可以得到,一旦n大于等于m,答案一定是YES 复杂度 O(n)#include<iostream>#include<cstdio>#include<cstring>u原创 2016-07-31 11:22:55 · 322 阅读 · 0 评论 -
BZOJ 2186 逆元
看了一天的数论了,整个人都要疯了,逆元部分我是看的这篇博客:点击打开链接先做一道题目吧,受不了了QAQ题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2186 题意:求中互质的数的个数,其中。 分析:先我们看到题目要求的是1~N!内有M!互质的个数N!>M!,而我们是知道在M!以内与M!互质的数的个数,即原创 2016-04-04 15:11:00 · 281 阅读 · 0 评论 -
BZOJ 2818 GCD 欧拉函数
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2818 题意: Description给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对.Input一个整数N Output如题 Sample Input 4Sample Output 4 HINThint对于样例(2,2),(2,4),(3,3原创 2016-04-04 00:24:46 · 331 阅读 · 0 评论 -
poj 3292 Semi-prime H-numbers 筛素数(简单题)
题意: H-numbers是4n+1形式的数 H-prime是由H-number构成的素数(即因子只有1和一个H-number) H-semi是由两个H-prime的积构成 要求找出n(n<1e6)以内有多少个H-semi数? 分析: 简单题,模仿一下Euler筛法,得到H-prime表,然后O(n)去求H-semi数即可。#include<iostream>#include<cstd原创 2016-08-02 09:49:01 · 338 阅读 · 0 评论 -
poj 2635 The Embarrassed Cryptographer ??/Java??(???)
??: ?K( 4 <= K <= 10^100 )???????,L( 2 <= L <= 10^6)?????????????,??????????L,??GOOD,???????????? ??: ???,??L?????,?????K??????K??,????????????Java??????import java.io.BufferedInputStream;import ja原创 2016-08-02 09:59:00 · 239 阅读 · 0 评论 -
poj 2115 C Looooops 扩展欧几里得算法
题意: 对于C的for(i=A ; i!=B ;i +=C)循环语句,问循环几次才会结束,其中所有的数(mod2^k)。 若在有限次内结束,则输出循环次数。否则输出死循环。 分析: 模线性方程的题目:题目可转化为Cx=(B-A)mod(2^k)求x的最小解? 然后就是用扩展欧几里得算法求解了。 详细的解题报告参考:http://blog.csdn.net/non_cease/articl原创 2016-08-02 19:44:15 · 253 阅读 · 0 评论 -
poj 1845 求A^B的约数之和
题意: 求A^B的所有约数之和 Mod 9901。思路: 大数模运算。两个最基本公式:(A*B)%C = ((A%C)(B%C))%C 和 (A+B)%C = ((A%C)+(B%C))%C 。用__int64的原因为 n = cnt[i] B (cnt[i]为A第i个素因子的个数)可能会超int。1: 对A进行素因子分解得 A = p1^a1 * p2^a2 * p3^a3 *...* pn原创 2016-08-02 21:33:06 · 655 阅读 · 0 评论 -
hdu 6108 小C的倍数问题【一个数的因子个数】
题目http://acm.hdu.edu.cn/showproblem.php?pid=6108题意Problem Description 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。I原创 2017-08-23 21:18:22 · 311 阅读 · 0 评论