
算法学习
文章平均质量分 71
陌辞寒_
人生的无奈
展开
-
数论学习(gcd,lcm)[osily]
首先是基本的最大公约数和最小公倍数,这是非常常用的,也是非常简单的,但我怎么理解了好一阵子…… 求出最大公约数,最小公倍数也就出来了,求最大公约数主要有两种形式(递归,非递归),和两种算法(碾转相除,更相减损),从空间看,非递归肯定强于递归;从时间看,碾转相除要快于更相减损(以看我还以为反过来的,因为减法比除法快,后来才明白如果用更相减损,要多算好多回,完全没有优势)。原创 2009-07-14 19:12:00 · 336 阅读 · 0 评论 -
数论学习(Extended-Euclid)[osily]
同时求出 x,y ,使 gcd ( a, b ) = x * a + y * b 扩展欧几里得算法几个月前就听过,但一直没仔细看过,感觉有点高深似的。 一看发现和我们高代多项式一章学的一个公式很像,不过把多项式变成了数,按理说还应该更简单。void ext_gcd(int a, int b, int &x, int &y){ if (b =原创 2009-07-14 20:54:00 · 261 阅读 · 0 评论 -
数论学习(中国剩余定理)[osily]
这个也不几个月知道的,一直没弄明白,好像有道题现在还卡在那呢。关于其的一些介绍,这有一个链接设w1,w2,...,wk两两互质,则下面的同余方程组: x = b1 (mod w1) x = b2 (mod w2) . . . x = bk (mod wk) int ch_re(int len){原创 2009-07-14 21:09:00 · 192 阅读 · 0 评论 -
poj2591 Set Definition [jiazheng2222]
这道题犯了几个错误:第一个就是需要开10000000的空间,我放在了main内部,结果Segmentation fault,找了一堆的问题,每一个语句都查错都没问题,最后发现在声明的时候可能出现错误,于是把声明放在了全局,就正确了;第二个,我本打算使用sort二分查找可以快一点,但是发现使用的数据过于庞大,进行测试的时候同样显示Segmentation fault,最后不得不换算法。393原创 2009-07-16 07:57:00 · 347 阅读 · 1 评论 -
中国剩余定理(孙子定理)
我国有一本数学古书「孙子算经」有这样一道问题:「今有物,不知其数,三三数之,剩二;五五数之,剩三;七七数之,剩二。问物几何?」 此题的意思是:有一批物品,三个三个地数,剩两个;五个五个地数,剩三个;七个七个地数,剩两个。问这批物品至少有多少个? 术曰:「三三数之剩二,置一百四十,五五数之剩三,置六十三,七七数之剩二,置三十,并之,得二百三十三,以二百一十转载 2009-07-08 20:07:00 · 2580 阅读 · 3 评论 -
再析 中国剩余定理 [jiazheng2222]
起初需要一个求最大公约数的辗转相除法,使用Euclid算法 int gcd(int a , int b) { return (b == 0 ? a : gcd(b , a % b)); }进而可以求得两个书的最大公约数,而这其中不需要关注a,b的大小顺序。之后出现拓展gcd算法,例如d=gcd(a,b)=x*a+y*b求得x,y的值。 in原创 2009-09-10 22:57:00 · 262 阅读 · 0 评论 -
poj 1190 经典dfs+剪枝 [jiazheng2222]
生日蛋糕Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 4740 Accepted: 1640Description7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(原创 2009-09-29 12:40:00 · 1003 阅读 · 2 评论 -
幂2取余
//n^2 % mlong long done(int m, int n){ if(n == 0) { return 1; } if(n == 1) { return 2; } long long t = done(m, n/2); t = t*t; if(n%2 == 0) { return (long long)(((t%m)=原创 2010-05-15 23:36:00 · 198 阅读 · 0 评论