Chiryen

导航

2013年7月30日 #

大数运算(加减乘除)

摘要: 加法void add(char a[],char b[],char d[]){ char c[10001]; int lena=strlen(a),lenb=strlen(b); int i,j,len; len=lena>lenb?lena:lenb; len++; c[0]='\0'; for(i=1;i57) { c[i]-=10; c[i+1]++; } } for(i=len;i>1;i--) if(c[i]==48) le... 阅读全文

posted @ 2013-07-30 19:09 Chiryen 阅读(671) 评论(0) 推荐(0) 编辑

扩展的欧几里得

摘要: POJ1061 青蛙的约会公青蛙一开始在x位置,母青蛙在y位置。公青蛙每次跳m米,母青蛙每次跳n米,并且都是向右跳的。地球经线长度是L,然后地球是圆的,也就是说,跳到L、L+1、L+2……其实就是跳到0、1、2。 公青蛙想追母青蛙,问多少次后它们能跳到一起。如果它们永远不能相遇,就输出Impossible(好可怜啊!)很明显嘛,就是求一个k,使x + k*m ≡ y + k*n (mod L) 嘛,木有错吧?至少我是这么想滴!然后对方程化简咯,就变成(n-m) * k ≡ x-y (mod L)咯。然后这个方程其实就等价于(n-m)*k + L*s = x-y咯。这就是ax + by = c求 阅读全文

posted @ 2013-07-30 18:42 Chiryen 阅读(214) 评论(0) 推荐(0) 编辑

母函数

摘要: 有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?每种重量各有几种可能方案?考虑用母函数来接吻这个问题:我们假设x表示砝码,x的指数表示砝码的重量,这样:1个1克的砝码可以用函数1+x表示,1个2克的砝码可以用函数1+x2表示,1个3克的砝码可以用函数1+x3表示,1个4克的砝码可以用函数1+x4表示,几种砝码的组合可以称重的情况,可以用以上几个函数的乘积表示:(1+x)(1+x2)(1+x3)(1+x4)=(1+x+x2+x3)(1+x3+x4+x7)=1+x+x2+2x3+2x4+2x5+2x6+2x7+x8+x9+x10从上面的函数知道:可称出从1克到10克,系... 阅读全文

posted @ 2013-07-30 18:35 Chiryen 阅读(418) 评论(0) 推荐(0) 编辑