
数论+大整数
秋天的风--
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
展开
-
hdu 1787
#include#includeint huzhi(int n) {//欧拉函数公式int i,j=n;for(i=2;iif(n%i==0) {j=j/i*(i-1);while(n%i==0)//保证i都是素数n/=i;}if(n>1)//当n为2时用到此步j=j/n*(n-1);return j;}int main() {int n原创 2013-11-20 15:31:03 · 755 阅读 · 0 评论 -
hdu 5035 概率论
HDU 5035 Delivery 题解题解 数学 概率 期望题目大意:Matt一个发快递,快递点有N个职员,职员处理一个客户的时间服从指数分布:f(t)=λe−λt,其中的参数λ为职员的效率,现在给出每个职员的效率,同时给了一个场景:现在每个职员都有且只有客户在服务中,此人还从信息牌得知了每个职员已经为当前客户服务了c时间,题目中也给出了,一旦有客户被服务完毕转载 2014-09-22 11:31:01 · 767 阅读 · 0 评论 -
hdu 2604 矩阵快速幂模板题
/*矩阵快速幂: 第n个人如果是m,有f(n-1)种合法结果 第n个人如果是f,对于第n-1和n-2个人有四种ff,fm,mf,mm其中合法的只有fm和mm 对于ffm第n-3个人只能是m那么有f(n-4)种 对于fmm那么对于第n-3个人没有限制有f(n-3)种 顾f(n)=f(n-1)+f(n-3)+f(n-4)原创 2014-09-23 15:12:43 · 779 阅读 · 0 评论 -
hdu 5073 推公式相邻质心转换
#include#include#include#define N 51000int cmp(const void *a,const void *b) {return *(int *)a-*(int *)b;}int a[N];int sum[N];double all[N];double ss(int a,double b) {return (1.0*a-b)*(1.0*原创 2014-10-22 18:52:57 · 553 阅读 · 0 评论 -
高斯消元中用到的相关概念和模板
线性独立:一组向量,如果其中的一个向量能用别的向量的线性组合的形式表示出来,则这组向量是线性相关的;否则向量组就是线性无关的。原创 2014-10-17 11:09:49 · 637 阅读 · 0 评论 -
高斯消元法模板
转载:http://yzmduncan.iteye.com/blog/1740520转载 2014-10-17 11:16:10 · 597 阅读 · 0 评论 -
利用牛顿迭代法求平方根
求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1 先让我们来验证下这个巧妙的方法准确性,来算下2的平方根 (Computed by Mathomatic)1-> x_new = ( x_old + y/x_old )/2y(x_old + -----)x_old#1: x转载 2014-12-27 21:46:21 · 1140 阅读 · 0 评论 -
hdu 2669 扩展欧几里得(裸)
#include#include#define ll __int64ll gcd(ll a,ll b,ll &x,ll &y) { ll k; if(b==0) { x=1;y=0; return a; } ll d=gcd(b,a%b,x,y); k=x; x=y; y=k-a/b*y; return d;}int mai原创 2015-03-31 19:20:57 · 430 阅读 · 0 评论 -
判断两个矩形是否相交的算法
转载:http://blog.sina.com.cn/s/blog_7865b083010100ah.html判断两个矩形是否相交的算法 (2011-11-07 19:38:48)转载▼标签: it分类: 基本算法题数学 判断矩形是否相交,有很多种方法,比如说判断矩形的任意两条边是否相交。但是这种方法转载 2015-04-29 16:31:06 · 5699 阅读 · 1 评论 -
hdu 4870 期望问题(高斯消元)
/*初学概率期望问题参考:http://blog.youkuaiyun.com/a601025382s/article/details/38047905*/#include#include#include#include#includeusing namespace std;#define N 300struct node { double ma[N][N];}a;void原创 2015-04-28 10:09:57 · 493 阅读 · 0 评论 -
hdu 5015 矩阵快速幂(可用作模板)
转载:http://blog.youkuaiyun.com/wdcjdtc/article/details/39318847转载 2014-09-19 19:36:29 · 538 阅读 · 0 评论 -
hdu 1576扩展欧几里得算法
#include#define ll long long/* 2.那么x,y的一组解就是x1*m1,y1*m1,但是由于满足方程的解无穷多个,在实际的解题中一般都会去求解x或是y的最小正数的值。以求x为例,又该如何求解呢?还是从方程入手,现在的x,y已经满足a*x+b*y=m,那么a*(x+n*b)+b*(y-n*a)=m显然也是成立的。可以得出x+n*b(n=…,-2,-1,0,1,原创 2014-07-07 17:20:28 · 608 阅读 · 0 评论 -
同余定理
http://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/03/2430676.html转载 2013-10-03 18:38:36 · 784 阅读 · 0 评论 -
1066N !最右边非零数
http://hi.baidu.com/nicker2010/item/4fa83c4c5050b3e5a4c066ec转载 2014-04-14 15:33:55 · 661 阅读 · 0 评论 -
hdu 1163
别人的代码开始自己不知道什么数论解法: ab*ab=(a*10+b)(a*10+b)=a^2*100+2ab*10+b^2 所以the root digital=(a+b)*(a+b); 而数论中的定理:两数之积对9取余数等于两数对9的余数的乘积。 代码: #include"stdio.h"int main()原创 2014-05-20 09:46:27 · 597 阅读 · 0 评论 -
nyoj 803 大数问题
#include#include#define ll long long#define N 110000int main() { ll i,sum,b,k,len,f[N]; char s[N],st[3]; while(scanf("%s%s%lld",s,st,&b)!=EOF) { if(strcmp(st,"/")==0) { sum=0原创 2014-05-22 09:49:09 · 590 阅读 · 0 评论 -
poj 3006水题打素数表
#include#include#define N 1100000int isprim[N],prime[N];void isprime() { int i,j;memset(isprim,-1,sizeof(isprim)); isprim[1]=0; for(i=2;i<=1000;i++) if(isprim[i]==-1) { for(j=i*2;原创 2014-07-19 10:47:19 · 512 阅读 · 0 评论 -
hdu 1713求分数的最小公倍数
#include__int64 gcd(__int64 a,__int64 b) {/*比如4/3 3/5通分20/15 9/15所以这两个分数的最小公倍数为 180/15 (20,9的最小公倍数为180)..然后约分下就好了。。所以答案就是12*/if(b==0) return a;return gcd(b,a%b);}int main() {原创 2014-06-28 16:14:53 · 628 阅读 · 0 评论 -
hdu 1250 简单大整数加法
#include#include#define N 3100int a[N],b[N],c[N],d[N],e[N];int main() { int n,i,j,k,t; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a));memset(c,0,sizeof(c)); memset(b,0,sizeof(b));me原创 2014-07-05 11:41:14 · 553 阅读 · 0 评论 -
hdu 1568关于斐波那契数列的公式及其思维技巧
先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7;log10(1.0234432)就是log10(10234432)的小数部分.log10(1.0234432)=0.01006374转载 2014-07-05 09:10:13 · 691 阅读 · 0 评论 -
欧几里德算法的扩展-求解不定方程
扩展欧几里德算法是用来在已知a, b求解一组p,q使得p * a+q * b = Gcd(p, q) (解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。下面是一个使用C++的实现: int exGcd(int a, int b, int &x, int &y) { if(b == 0) { x = 1; y = 0; return a;转载 2014-07-07 16:14:11 · 818 阅读 · 0 评论 -
有唯一解的高斯消元模板
/*有唯一解的高斯消元模板*/#include#include#include#includeusing namespace std;#define N 110double a[N][N];void gauss(int n) { int i,j,k,r; for(i=0;i<n;i++) { r=i; for(j=i+1;j<n;j++)原创 2015-04-27 16:07:27 · 467 阅读 · 0 评论