上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页

2011年8月27日

64位以内Rabin-Miller 强伪素数测试和Pollard rho 因数分解解析

摘要: 在求解POJ1811题Prime Test中应用到的两个重要算法是Rabin-Miller强伪素数测试和Pollard r因数分解算法。前者可以在 的时间内以很高的成功概率判断一个整数是否是素数。后者可以在最优 的时间内完成合数的因数分解。这两种算法相对于试除法都显得比较复杂。本文试图对这两者进行简单的阐述,说明它们在32位计算机上限制在64位以内的条件下的实现中的细节。下文提到的所有字母均表示整数。一、Rabin-Miller强伪素数测试Rabin-Miller强伪素数测试的基本思想来源于如下的Fermat小定理:如果p是一个素数,则... 阅读全文

posted @ 2011-08-27 13:16 _Clarence 阅读(1106) 评论(0) 推荐(0) 编辑

2011年8月26日

ACM PKU poj 2084 Game of Connections

摘要: 题目描述:http://poj.org/problem?id=2084这道题必须要贴一下,我的第一道卡特兰数,顺便测试一下我的大数模板,哈哈,T了一次,后来改成打表就A了,顺便贴上我的JAVA代码;C++代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;#include<iostream>#include<vector>#include<string>//--------------------------------- 阅读全文

posted @ 2011-08-26 18:57 _Clarence 阅读(308) 评论(0) 推荐(0) 编辑

用母函数的思路解释母函数的代码

摘要: 该文章建立在你已经看过母函数的相关数学知识的基础上,如果没有看过,建议看一下 hdu 论坛的母函数课件,传送门:http://acm.hdu.edu.cn/forum/read.php?tid=3853用一个最简单的例子说明代码:硬币面值有1元、5元、10元、25元、50元,一共5种,对于一个钱数 money,可以有多少中兑现方法?很容易地构造母函数G(x) = (x^0 + x^1 + x^2 + …) * (x^0 + x^5 + x^10 + …) * (x^0 + x^10 + x^20 + …)* (x^0 + x^25 + x^50 + x^75 + …) * (x^0 + x^5 阅读全文

posted @ 2011-08-26 14:40 _Clarence 阅读(265) 评论(0) 推荐(0) 编辑

2011年8月24日

ACM PKU 2407 Relatives

摘要: 我的第一道欧拉函数题,题目虽水,但是还是值得纪念一下的,呵呵这里要说明一个问题:对于一个整数,它最多有一个最大因子超过它的平方根;比如说吧,10的平方根是3,它只有一个比3大的因子5,原因是很简单,只是看自己有没有想到;这个没想清楚让我奉献了一次MLE,呵呵...#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>using namespace std;const int MAXN = 100000;int prim[MAXN];void prime(in 阅读全文

posted @ 2011-08-24 20:59 _Clarence 阅读(137) 评论(0) 推荐(0) 编辑

2011年8月22日

ACM PKU 1696 Space Ant

摘要: 题目描述:http://poj.org/problem?id=1696#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>const int MAXN=50;using namespace std;struct point{ int x,y,index;} p[MAXN+10];point tmp;int test;int Xmul(point sp, point ep, point op){ return (sp.x - op.x) * (ep.y 阅读全文

posted @ 2011-08-22 16:47 _Clarence 阅读(143) 评论(0) 推荐(0) 编辑

2011年8月20日

ACM PKU 1182 食物链

摘要: 题目描述:http://poj.org/problem?id=1182今天上午闲着没事,把这道题的解题思路仔细梳理一下:题目是中文的,都看懂了,就不多说了。对于A、B、C三种动物,他们的关系构成了一个环;如图所示,ABC 直接的关系是吃的关系,有向图:从三者之间的关系可以看出ABC是轮回对称的,所以只要讨论一个点的关系就够了;但是对于一个点,仍然存在着三种关系,出了吃别人,和自己被吃之外,还有一个同类型的关系;对于不能确定两个元素是不是在一个并查集里的情况下,需要进行合并,unionSet()函数来实现;对于X和Y他们的合并需要维护两个数组,一个是并查集的P[]数组,一个是关系数组deff[] 阅读全文

posted @ 2011-08-20 21:23 _Clarence 阅读(418) 评论(0) 推荐(1) 编辑

ACM PKU1703 Find them, Catch them

摘要: 题目描述:http://poj.org/problem?id=1703这是一道带偏移量的并查集问题,一点点小错误调了我好久,悲剧!奉献代码:#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN = 100000;int N,M;bool deff[MAXN+10];int p[MAXN+10];void init() //并查集初始化;{ for(int i=0; i<=N+1; i++) { p[i]=i; deff[i]=0; 阅读全文

posted @ 2011-08-20 19:51 _Clarence 阅读(130) 评论(0) 推荐(0) 编辑

ACM PKU 2299 Ultra-QuickSort

摘要: 题目链接:http://poj.org/problem?id=2299这道题是求逆序数的,离散化+树状数组;注意的地方:1、离散化的比较函数;2、结果会爆int,所以必须用__int64或者是long long 类型来存储结果;#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int MAXN=500000;int n_case;int B[MAXN+10],C[MAXN+10];struct no 阅读全文

posted @ 2011-08-20 10:20 _Clarence 阅读(128) 评论(0) 推荐(0) 编辑

2011年8月19日

ACM PKU 1470 Closest Common Ancestors

摘要: //题目描述:http://poj.org/problem?id=1470#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN=1009;int size,dep;int N,Q;int box[MAXN],ecnt;int depth[MAXN],c[MAXN],pos[MAXN];bool flag[MAXN];int a[20][2*MAXN],ans[MAXN];struct node{ int to,next;} e[MAXN 阅读全文

posted @ 2011-08-19 19:46 _Clarence 阅读(80) 评论(0) 推荐(0) 编辑

2011年8月18日

DUT 胡老师的跨国逃亡

摘要: DescriptionA国与B国又爆发了战争,这让正在A国工作的B国人胡老师非常危险。大陆上只有这两个国家的存在,这让胡老师无处避难,思乡心切的胡老师希望在战争期间尽快回到家乡。大陆上有N (2<=N<=3000)座城市,标号1...N,由M (0<=M<=500000)条道路连接,每条道路都是双向连接的,并且长度为W(0<=W<=500),我们把连接不同国家的城市的道路叫做边境道路。我们假定胡老师在1号城市工作,家乡在2号城市,并且假定1号城市一直属于A国,2号城市一直属于B国。“两国交战,屯兵边境,过边境实在是太危险了。”一个美眉这样告诉她敬爱的胡老师, 阅读全文

posted @ 2011-08-18 21:34 _Clarence 阅读(193) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页

导航