数论
文章平均质量分 72
LiWen_7
这个作者很懒,什么都没留下…
展开
-
(A^B)%C 快速幂乘 (简单数论)
#include using namespace std; int main() { int a,b,c; while (scanf("%d%d%d",&a,&b,&c)!=EOF&&a!=0&&b!=0&&c!=0) { int k=1; while (b>0) { if(b&1!=0) // 作用1:当 b为奇数,则先单独乘一个a原创 2012-05-08 12:47:36 · 2499 阅读 · 0 评论 -
hdu 1005 矩阵相乘求解
矩阵乘法: 我们将数列写成: Fibonacci[0] = 0,Fibonacci[1] = 1 Fibonacci[n] = Fibonacci[n-1] + Fibonacci[n-2] (n >= 2) 可以将它写成矩阵乘法形式: 将右边连续的展开就得到:原创 2012-09-18 09:57:08 · 1158 阅读 · 0 评论 -
ccsu 1546 数字游戏
Description 自从小黑上次在和大宝的游戏中取得了信心之后,这次他又想到了一个问题,他要去计算两个数A和B的最大公约数。 由于这两个数非常的大,于是大宝把数字A拆成了N个数,这N个数相乘的结果是A,把B拆成了M个数,同样这M个数的乘积等于B,小黑迫不及待地想去计算出这两个数的最大公约数,这次你能帮帮他吗?如果结果超过了9位数,输出最后的9位数。 Input 第一行包含一个正原创 2012-09-17 20:39:12 · 885 阅读 · 0 评论 -
POJ 3318 两个大矩阵相乘是否与另一矩阵结果相等
关于八月POJ月赛的problem B(3381)的解题总结 一、 题目要求 给定三个矩阵:A、B和C,判断A*B是否等于C。 二、 分析 题目很直观,就是矩阵乘法,但是两个矩阵直接相乘需要O(n^3)的时间复杂度,假设A*B的结果存放在AB矩阵中,实例代码如下: for(int i=0;i for(int j=0;j {转载 2012-09-14 15:18:56 · 2560 阅读 · 0 评论 -
coj 1036 Number (数学)
Description 数学知识在ACM竞赛中是很重要的,下面就是一道数学题。 给定2个正整数A、B,求不能被x*A+y*B表示的最大整数(x,y必须为非负整数)。 Input 第一行一个整数M,代表测试样例总数。 每组样例输入两个数A,B 1 2 Output 对每组输入,输出一行。 如果这个最大的整数不存在,输出 -1 Sample Input原创 2012-09-13 21:29:47 · 718 阅读 · 0 评论 -
POJ 2407 Relatives 欧拉函数(简单求函数值)
题目链接: http://poj.org/problem?id=2407 φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3 欧拉公式 那么φ(12)=1原创 2012-05-07 17:20:55 · 1068 阅读 · 0 评论 -
ccsu 1027 一元三次方程求解 (牛顿迭代)
设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的原创 2012-05-08 17:51:13 · 1607 阅读 · 0 评论 -
ccsu 1179 青蛙过河 递推
题目: 有一条河,左边一个石墩(A区)上有编号为1,2,3,4,…,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图2—5所示。 n只青蛙要过河(从左岸石墩A到右岸石墩B),规则为: 1)石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大小); (2)青蛙可以:A→B(表示可以从A跳到B,下同),A→C,A→D,C→B,原创 2012-08-17 16:59:01 · 1955 阅读 · 0 评论 -
错排公式
错排问题 错排问题 就是一种递推式,不过它比较著名且常用,所以要熟记! 方法一: n各有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。任给一个n,求出1,2,……,n的错排个数Dn共有多少个。 递归关系式为:D(n)=(n-1)(D(n-1)+D(n-2)) D(1)=0,D(2)=1 可以得到: 错排公式为 f(n转载 2012-06-08 19:07:25 · 12255 阅读 · 0 评论 -
迭代加深搜索 埃及分数
在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。 如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。 对于一个分数a/b,表示方法有很多种,但是哪种最好呢? 首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。 如: 19/45=1/3 + 1/12 + 1/180 19/45=1/3 + 1原创 2012-03-04 11:48:45 · 2836 阅读 · 2 评论 -
hdu 1171 母函数 和 DP
母函数: #include #include using namespace std; typedef struct { int v; int m; }P; int c1[250010],c2[250010]; int main() { int n; P a[110]; int sum; int avg; while (scanf("%d",&n)!=EOF&&n>0) {原创 2012-05-12 22:31:18 · 565 阅读 · 0 评论 -
母函数 (每种邮票无限用,求n分的表达种数)
/* 计算用 1、2、3分的邮票组合成 nNum分有 c1[nNum]种情况 (即 X^nNum的系数为多少) 注意 !!!: 该代码仅适用于 每种邮票使用次数不限 第一个for是:代表 第 i个括号里的多项式 ,第 i个括号代表 i分的邮票情况,即括号中 X^(i的倍数) 第二个for,因为从左向右计算,所以每次算完一个括号 就将结果用原创 2012-05-10 21:56:46 · 678 阅读 · 0 评论 -
康托展开
内容:(转自百度百科) X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,并且0 康托展开的应用实例 {1,2,3,4,...,n}表示1,2,3,...,n的排列如 {1,2,3} 按从小到大排列一共6个。123 132 213 231 312 321 。 代表的数原创 2012-05-08 21:52:53 · 2167 阅读 · 0 评论 -
coj 1053 寂寞的素数 (费马小定理 + 矩阵求斐波那契)
Description Fibonacci 数列是大家的老朋友了 Fib[1]=1, Fib[2]=1, Fib[3]=2……Fib[n]= Fib[n-1]+ Fib[n-2] p是一个不甘寂寞的素数。某日它找到Fibonacci 数列,跳到Fibonacci 数列头上玩了起一个传说中的游戏。于是我们看到: Fib[a]^p+ Fib[a+1]^p+ Fib[a+2]^p………..原创 2012-09-20 10:53:31 · 2556 阅读 · 0 评论