
数学
YouthDance
JUST DO IT
展开
-
模板
最大公约和最小公倍数#define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b) ((a)<(b)?(a):(b)) int gcd(int a,int b){return b?gcd(b,a%b):a;} int lcm(int a,int b){return a*b/gcd(a,b);}原创 2013-04-26 20:58:14 · 642 阅读 · 0 评论 -
筛选素数空间压缩(数论)&& Double Happiness
113 C. Double Happiness先介绍bitset#includeusing std::bitset;一句话定义:可自定义位数,用作记录二进制的数据类型.一,定义和初始化 bitset b; //b有n位,每位都为0; bitset b(u);原创 2014-09-24 17:09:42 · 1005 阅读 · 0 评论 -
HDU DP?(Lucas + 帕森斯定理)
DP? 题目链接:Click Here~题目分析: 给出一个终点坐标,求出(0,0)开始的到(n,k)的最小权重和。算法分析: 根据杨辉三角的性质可以知道,只要往两边走则得到的值会更小。因为,C(N,M) = C(N,N-M)。所以,我们尽量的斜向的往旁边走。但是,在斜向走k步后就已经到达边界了,此时只要顺着1一直往上走就可以了。所以,经过的最短路和为:C(n,原创 2014-09-26 14:54:52 · 1104 阅读 · 0 评论 -
福州大学 2020组合 Lucas算法求解逆元的介绍
http://acm.fzu.edu.cn/problem.php?pid=2020 HomeProblemsRanklistContestHelpHi, zhongshijun Problem 2020 组合Accept: 464 Submit: 1148Ti原创 2013-11-26 21:48:31 · 1079 阅读 · 0 评论 -
poj Discrete Logging (Baby-step-Giant - step)
Discrete Logging题目: Given a prime P, 2 31, an integer B, 2 BL == N (mod P)原创 2014-11-10 13:32:44 · 652 阅读 · 0 评论 -
中国剩余定理总结
中国剩余定理总结 当你遇到x == c (mod p) 要你求解x的时候,是不是很容易的想到了这样转换---> x - py = c运用extgcd得到答案。但是现在如果有很多个x呢?如: x == c1(mod p1)原创 2014-11-10 20:23:37 · 2383 阅读 · 0 评论 -
HDU4549 M斐波那契数列
M斐波那契数列题目分析:M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,你能求出F[n]的值吗?算法分析: 经过前面几项的推导,你会发现其中a,b的个数为斐波那契数相同。而我们知道斐波那契数是到20项后就会很大原创 2014-10-02 09:34:23 · 1122 阅读 · 0 评论 -
素性测试poj1811
题意:给定一个64位整数,问是否为质数,如果不是,则输出其最小因子。分析:经典题!!数学题miller_rabbin素数判定。若不是,则pollard_rho分解质因子,找到最小即可。Miller-rabinMiller-rabin算法是一个用来快速判断一个正整数是否为素数的算法。它利用了费马小定理,即:如果p是质数,且a,p互质,那么a^(p-1) mod p恒等于1转载 2014-10-16 12:50:24 · 646 阅读 · 0 评论 -
poj 2689 素数筛选的巧妙使用
题目: 给出一个区间[L,R]求在该区间内的素数最短,最长距离。 (R 由数论知识可得一个数的因子可在开根号内得到。所以,我们可以打出5*10^4内得素数。然后,在用一次筛法把在[L,R]内得合数找到,则剩下的就是素数了。这里要用到离散化,把一个数 x - L 保存在数组里。因为,直接保存肯定不行,但是我们发现区间特点较小。所以,可以想到离散化。 #include #i原创 2014-10-16 15:58:06 · 904 阅读 · 0 评论 -
sgu The equation
There is an equation ax + by + c = 0. Given a,b,c,x1,x2,y1,y2 you must determine, how many integer roots of this equation are satisfy to the following conditions : x1<=x<=x2, y1<=y<=y2. Integer root原创 2014-11-05 20:32:20 · 704 阅读 · 0 评论 -
Sum Of Gcd
Problem DescriptionGiven you a sequence of number a1, a2, ..., an, which is a permutation of 1...n.You need to answer some queries, each with the following format:Give you two numbers L, R, you原创 2014-11-05 16:25:16 · 691 阅读 · 0 评论 -
数论中的Josehus环问题
数论中的Josehus环问题 这个问题吧,其实从我一开始接触到算法的时候,就开始纠结了。但是至今也没真正懂得其本质含义(冏)。所以,只能转一些别人的博客,记录一下,慢慢研究。不过坑爹的是居然很多人的博客的程序是有BUG的,而且是一个BUG的程序被一堆人转载着。其实,我也是其中转载BUG程序的一个。后来,做题的时候才发现了漏洞的。现在就给出一个正确的程序和解释吧。下面利用数学原创 2014-03-09 09:13:46 · 1636 阅读 · 0 评论 -
HDU 整数对
做做数学题,锻炼一下思维。不过总感觉自己智力是硬伤。 整数对Problem Description Gardon和小希玩了一个游戏,Gardon随便想了一个数A(首位不能为0),把它去掉一个数字以后得到另外一个数B,他把A和B的和N告诉了小希,让小希猜想他原来想的数字。不过为了公平起见,如果小希回答的数虽然不是A,但同样能达到那个条件(去掉其中的一个数字得到B,A原创 2013-11-28 21:55:15 · 749 阅读 · 0 评论 -
Baby_Step,Gaint_Step(分析详解+模板)
以下是总结自他人博客资料,以及本人自己的学习经验。【Baby_Step,Gaint_Step定义】高次同余方程。 BL == N (mod P)求解最小的L。由于数据范围很大,暴力不行这里用到baby_step,giant_step算法。意为先小步,后大步。令L=i*m+j (m=ceil(sqrt(p-1))),那么原式化为 B^(i*m)*B^j=原创 2014-08-12 10:28:55 · 1411 阅读 · 0 评论 -
Summation of Four Primes(歌德巴赫猜想)
Summation of Four Primes 题目链接:click here~题目要求: 给出一个整数要你将其拆成由四个素数组成的数。如果,不能拆则输出“Impossible.”思路解析: 根据题目给出的两个猜想,可以得到。如果,一个数是奇数的话则其一定可以拆成一个奇数+一个偶数的形式,而一个数是偶数的话可拆的就有两种奇数+奇数/偶数+偶原创 2014-07-18 10:48:06 · 1572 阅读 · 0 评论 -
神奇的数学公式。。。求《k次方》的前三位与后三位
总的来说该题没有什么太大的思想要求,主要是运用了一个神奇的数学公式。即在求前三位数的时候,求总的位数:t=log10((double)n)+1;之后再运用一个公式:n^k/10^(t-3);#include#includeint pow_mod(int a,int n,int m){ if(n==0)return 1; int x=pow_mod(a,n/2,m);原创 2013-05-06 21:22:27 · 1531 阅读 · 0 评论 -
Fibonacci 题目汇总
原先总以为Fibonacci只能以快速矩阵幂和循环节求出,但随着学习的深入才知道,原来Fibonacci是属于数论类,而且可以用公式直接算出,而无需一下瞎推和暴力。 FIBONACCI 公式: 这个数列是意大利中世纪数学家斐波那契在;中提出的,这个级数的通项公式,除了具有 a(n+2) =an+a(n+1)的性原创 2013-05-04 09:06:42 · 933 阅读 · 0 评论 -
一道有趣的Hash加数学思想
题目意思很简单,就不在做过多的解释了。#include #include const int MAX =100001;int hash[MAX];bool cir[MAX];int main(){ int T,n; scanf("%d",&T); while(T--) { memset(hash,0,sizeof(hash));原创 2013-06-05 16:46:56 · 886 阅读 · 0 评论 -
扩展欧几里得求逆元
扩展欧几里得求逆元 用扩展欧几里得求解逆元是一种常用的方法,当然还有其他的方法。这里主要介绍两种,一种就是扩展欧几里得,另一种是不常用的方法。到后面会介绍。 你是否经常遇到过类似的问题 (A/B)%Mod 。此时,要先计算B%Mod的逆元p, 其实他是用逆元解决的典型题目。但是在使用逆元时候你需满足一下两个条件才能原创 2013-11-26 19:29:19 · 2905 阅读 · 0 评论 -
F(x)
F(x) Click Here~时间限制:1000 ms | 内存限制:65535 KB难度:3描述我们定义 F(x)是满足 x mod(a*b) == 0这样的a,b的组数。现在给你一个n,你需要求出 F(n)输入有多组测试数据。每组测试数据输入一个整数n (1 输出每组测试数据输出 Case x: y ,x 表示第x组测试数据原创 2013-11-30 14:16:58 · 1474 阅读 · 0 评论 -
有关数学的一些基础题
小M的因子和 时间限制:1000 ms | 内存限制:65535 KB描述 小M在上课时有些得意忘形,老师想出道题目难住他。小M听说是求因子和,还是非常得意,但是看完题目是求A的B次方的因子和,有些手足无措了,你能解决这个问题吗?输入有多组测试样例每行两个数 A ,B ,(1原创 2013-11-30 20:26:02 · 861 阅读 · 0 评论 -
组合数学[包容排斥原理]
无平方因子数Description无平方因子数即对于任意一个素数p,p^2都不会整除那个数,如1 , 5=5 , 15=3*5都是无平方因子数,而20=2^2*5不是。现在给定一个n (1 Input第一行有个整数T,代表数据组数(T 接下来有T行,每行有个整数n (1 Output输出T行,每行输出一个整数代表区间[1,n]内的无平方因子数的个数。Sa原创 2013-11-27 17:24:38 · 5043 阅读 · 0 评论 -
错位排列
错位排列离散数学如是解释:错位排列 的计数问题。 有N个人在参加晚会时寄存了自己的帽子。可是保管人忘记放寄存号,当每个人领取帽子时,他只能随机选择一顶帽子交给寄存的人。问在N!中领取帽子的方式中有多少种方式使得每个人都没有领到自己的帽子?此后省略证明的一堆字,有兴趣的自己维基。下面给出错排公式:一、Dn = N![1- 1/1! + 1/2! - ....... +(-1)^n * 1原创 2013-12-22 20:30:57 · 2846 阅读 · 0 评论 -
母函数(整数划分)
母函数的分析 母函数的原理数,后生之辈没啥可讲的。完全可以站在巨人的肩膀上。下面给出杭电科技大学的课程链接,不懂得就自己去获取基础知识点吧。Click Here~ 个人学了一些有关母函数的知识,经过本人的总结。个人觉得大体上解体策略可以分为动态规划及递归型和母函数求解型。而其中动态规划及递归的主要是运用与有关整数划分的问题。而整数划分又分很多种情况。下面给出哈工大学原创 2013-12-22 09:38:45 · 2261 阅读 · 0 评论 -
腾迅马拉松(一)解题报告
腾迅马拉松(一)解题报告 小明系列故事——师兄帮帮忙题目链接:Click Here~ 题目分析: 题目说明给你三个数分别为n,t,k分别表示n个数,t次时间,每次乘以k。且每次的变化规则为: a[i] = a[i-1]'*K; (a[i-1]'为前一次的数,当i=1时a[1] = a[n]'*K原创 2013-12-27 08:03:03 · 1132 阅读 · 0 评论 -
Solve It(数论,二分迭代求值)
Solve ItInput:standard input Output:standard output Time Limit: 1 secondMemory Limit: 32 MBSolve the equation: p*e-x+q*sin(x) + r*cos(x) + s*tan(x) +t*x2 + u = 0原创 2014-01-12 21:04:20 · 1531 阅读 · 0 评论 -
叉乘求任意多边形面积
叉乘求任意多边形面积N:多边形的顶点数目返回值:多边形面积注意: 支持多边形,凹凸多边形都可 多边形顶点输入顺序按顺时针排序struct Point{ double x,y;}p[N];int n;double polygonarea(){ int i,j; double area = 0; for(i = 0;i原创 2014-03-02 12:06:50 · 2235 阅读 · 0 评论 -
poj The Luckiest number
The Luckiest numbe题目: 在满足|x| + |y|最小时候,让a*|x| + b*|y|最小。求:|x| + |y|最小值。算法: 同余式的求解运用。 解体步骤: 1、先用gcd判断是否有解。(c%g == 0有解) 2、对式子求最简式。a' = a/g ; b' = b/g; c' = c/g; 3、运原创 2014-11-08 14:12:37 · 761 阅读 · 0 评论