
数学
文章平均质量分 82
Exchan
A AC a day,keep the doctor away!
展开
-
位运算实现加、减、乘、除运算
1. 加法运算先来个我们最熟悉的十进制的加法运算:13 + 9 = 22我们像这样来拆分这个运算过程: 不考虑进位,分别对各位数进行相加,结果为sum: 个位数3加上9为2;十位数1加上0为1; 最终结果为12; 只考虑进位,结果为carry: 3 + 9 有进位,进位的值为10; 如果步骤2所得进位结果carry不为0,对步骤1所得sum,步骤2所得...转载 2020-02-17 16:11:39 · 900 阅读 · 0 评论 -
打表找规律+矩阵快速幂 - hdu6198
number number number题意:给出斐波那契数组的定义,⋅F0=0,F1=1;⋅Fn=Fn−1+Fn−2 (n≥2).给定一个k,求出不能由k个斐波那契数组成的最小的数。数据范围:多组输入,由EOF结束。1≤k≤109时间:1s题解:首先打一个表,找出前面几项的结果,然后就能发现规律。打表原创 2017-09-13 17:33:47 · 358 阅读 · 0 评论 -
矩阵构造 - hdu3306
Another kind of Fibonacci题意:定义另一种类似斐波那契数列的数列,A(0) = 1 , A(1) = 1 , A(N) = X * A(N - 1) + Y * A(N - 2) (N >= 2),现在要计算S(N) , S(N) = A(0)^2 +A(1)^2+……+A(n)^2.数据范围:每组样例给定 N, X , Y.N : 2<= N <= 2^...原创 2017-09-05 20:00:04 · 347 阅读 · 0 评论 -
随机素数测试和大数分解 - poj1811
Prime Test题意:判断n是不是素数,是的话输出"Prime",否则输出n的最小质因子数据范围:2 题解:直接上模板 Miller_rabin判定大素数,pollard_rho分解大数在此奉上邝斌巨巨的模板: //直接做减法比取模更快,POJ不能用srand(),如果是Runtime Error,去掉这个函数就可以过了。#inc原创 2017-09-22 19:43:12 · 555 阅读 · 0 评论 -
卡特兰数 - hdu1130 hdu1133
How Many Trees?题意:给定一棵n个节点的二叉树, 求这棵树有多少个二叉树。数据范围: n思路:n个节点的二叉树有多种,多种二叉树里面又有子树。当n到达100时,结果是一个庞大的数字,所以要用到大数。在卡特兰数的应用里面,求二叉树的个数是一个典型的应用,还有 合法的入栈出栈序列数、多边形分成三角形的个数、圆括弧插入公式中的方法数 都是卡特兰原创 2017-08-30 10:37:15 · 645 阅读 · 0 评论 -
不定维数矩阵构造 - hdu3509
Buge's Fibonacci Number Problem题意:数据范围:Each test case contains 7 integers, they are f1, f2, a, b, k, n, m which were just mentioned above, where 0 题解:对于这种k次方,而且累加求和的一般都是矩阵快速幂,只要是构造原创 2017-09-07 21:24:29 · 580 阅读 · 0 评论 -
反素数 - zoj2562
More Divisors题意:求小于等于n(1 数据范围:(1 题解:反质数的性质:性质一:一个反素数的质因子必然是从2开始连续的质数.性质二:p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=.... 反素数请戳这里:百度百科任意数都可以表示成质数的乘积形式,所以可以反过来,直接枚举质数的乘积结果,原创 2017-09-21 20:09:13 · 320 阅读 · 0 评论 -
蓝桥杯-k倍区间 | 模的应用
K倍区间问题描述 给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗?输入格式 第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 &...原创 2018-05-17 17:04:56 · 340 阅读 · 0 评论 -
数学规律题 - 百度之星1001 小C的倍数问题
小C的倍数问题题意:根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。数据范围:第一行一个正整数T表示数据组数(1接下来T行,每行一个正整数P(2原创 2017-08-12 18:36:48 · 729 阅读 · 0 评论 -
HD 1016 Prime Ring Problem(素数环问题)
题目来源 :HD 1016Problem DescriptionA ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles sh原创 2016-08-05 17:01:16 · 361 阅读 · 0 评论 -
矩阵快速幂
题目描述存在如下递推式:F(n+1)=A1*F(n)+A2*F(n-1)+...+An*F(1)求第K项的值对1000000007取模的结果输入单组测试数据第一行输入两个整数 n , k (1第二行输入 n 个整数 F(1) F(2) ... F(n)第三行输入 n 个整数A1 A2 ... An 输出输出一个原创 2017-06-12 16:34:51 · 251 阅读 · 0 评论 -
异或 问题
问题定义:有2n+1个数,只有一个单着,别的都是成对的,找出这个单着的数。比如:2 1 3 2 1。3是答案。思路一:暴力搜索——每个数都和其他数比较,找不到相同的,就得到了结果。时间复杂度为o(n2)思路二:排序搜索——先给序列排个序,之后从前往后一对一对的找,直到不是成对的为止。时间复杂度,怎么也得o(nlgn)思路三:异或计算,一趟搞定。时间复杂度o(n)直接看思路三:原转载 2017-06-23 22:22:42 · 1737 阅读 · 0 评论 -
玲珑杯 1137 - Sin your life
1137 - Sin your life给一个正整数n,求下列表达式的最大值:(sin(x)+sin(y)+sin(z))[x+y+z=n][x≥1][y≥1][z≥1],这里的x,y,z皆为整数已知 x+y=m,则sinx+siny=sin(m-y)+sinymax=sqrt( sin(m) * sin(m) + (1-cos(m) * (1-cos(m) )原创 2017-06-24 16:28:09 · 363 阅读 · 0 评论 -
容斥定理 | 初步
容斥定理:http://www.cppblog.com/vici/archive/2011/09/05/155103.html玲珑杯 1138 - 震惊,99%+的中国人都会算错的问题DESCRIPTION众所周知zhu是一个大厨,zhu一直有自己独特的咸鱼制作技巧.tang是一个咸鱼供应商,他告诉zhu在他那里面有N条咸鱼(标号从1到N)可以被用来原创 2017-06-24 21:50:51 · 370 阅读 · 0 评论 -
康托展开
康托展开 康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。 这个公式可能看着让人头大,最好举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A", "C"],现在要转载 2017-07-11 21:00:29 · 229 阅读 · 0 评论 -
大组合数取模 Lucas定理 HD3037
题目:求n个数的和不超过m的方案数。如果和恰好等于m,那么就等价于方程x1+x2+...+xn = m的解的个数,利用插板法可以得到方案数为:(m+1)*(m+2)...(m+n-1) = C(m+n-1,n-1) = C(m+n-1,m)现在就需要求不大于m的,相当于对i = 0,1...,m对C(n+i-1,i)求和,根据公式C(n,k) = C(n-1,k)+C(n-1,k-1转载 2016-12-07 21:53:17 · 334 阅读 · 0 评论 -
斐波那契数列 矩阵求法 优化
在做编程题目的时候经常会遇到“斐波那契数列”相关的题目,尤其在做OJ中。下面说一些方法: (一)递归 递归是最慢的会发生重复计算,时间复杂度成指数级。long long fac(int n){ if(n==1) return 1; else if(n==2) return 2; else return fac(n-1)+fac(n-2);}转载 2016-12-06 20:48:41 · 528 阅读 · 0 评论 -
大数高精度加减乘除模板
大数高精度加减乘除的模板#include #include using namespace std;inline int compare(string str1, string str2){ if(str1.size() > str2.size()) //长度长的整数大于长度小的整数 return 1; else if(str1.size() < str转载 2016-11-22 21:10:42 · 753 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然后重新开始报数,问最后自杀的人是谁?如图:内环表示人排列的环,外环表示自杀顺序;上面N=41,M=3。 (图转自KangRoger的博客)问题链接:CDOJ 525最容易想到的思路是模拟,时间复杂度为(n*m);#include #include #include using namespace原创 2017-06-18 11:17:23 · 622 阅读 · 0 评论