
数论
文章平均质量分 67
fyfcauc
这个作者很懒,什么都没留下…
展开
-
poj-3126
// 600K 16MS G++#include #include #include #include using namespace std;char compositeNum[10000];char BFSFlag[10000];void getPrime() { int max = 100; int begin = 2; while(be原创 2014-07-22 12:15:11 · 494 阅读 · 0 评论 -
poj-2196
//392K 0MS G++#include #include using namespace std;int demicalWeight[4] = {1, 10, 100, 1000};int duodecimalWeight[4] = {1, 12, 144, 1728};int hexWeight[4] = {1, 16, 256, 4096};int getXDig原创 2014-09-15 21:38:10 · 592 阅读 · 0 评论 -
poj-2191
//404K 0MS G++#include #include #include using namespace std;// bool isPrime(long long N) {// for (long long i = 2; i <= N/2+1; i++) {// if (N%i == 0) {// return 0;原创 2014-09-15 21:09:08 · 472 阅读 · 0 评论 -
poj-3219
//184K 16MS C++#include #include using namespace std;int get2Num(int N) { int curLeft = N; int res = 0; while(curLeft >= 2) { curLeft /= 2; res += curLeft; }原创 2014-09-16 10:04:05 · 554 阅读 · 0 评论 -
poj-1338
//416K 16MS G++#include #include using namespace std;const int MAX = 1505;long long num[MAX];long long MIN(long long a, long long b) { return a < b ? a: b;}void init() { int f原创 2014-09-16 14:45:46 · 479 阅读 · 0 评论 -
poj-2591
//39360K 172MS C++#include #include const int MAX = 10000005;long num[MAX];long MIN(long a, long b) { return a < b ? a: b;}void init() { num[0] = 1; int p1 = 0; in原创 2014-09-16 14:55:35 · 461 阅读 · 0 评论 -
poj-2545
// #include// using namespace std;// long long num[1000000],a,b,c,pa,pb,pc,n;// int main()// {// cin>>a>>b>>c>>n;// num[0] = 1;// pa = pb = pc = 0;// for (int i =1;i<=n;i++)原创 2014-09-16 14:58:39 · 468 阅读 · 0 评论 -
poj-3641
//712K 0MS G++#include #include #include #include using namespace std;long long a, p;// long long power2(long long a, long long n)// {// long long ret = 1;// for (long long m = a;原创 2014-09-17 13:43:55 · 513 阅读 · 0 评论 -
高次方求模
有了这个公式,求解问题就简单了,n的p次方很容易拆分为几个数相乘的形式。其中采用二分法拆分较为简单高效。递归:[cpp] view plaincopyprint?#define M 10003 int PowMod(int n, int p) { if (p == 1) { return n % M;转载 2014-09-17 13:44:46 · 887 阅读 · 0 评论 -
模运算------x的y次方再模n
问题描述:ax mod n (a的x次方再模n)求结果,对小数量的求模一般数据类型可以应付,但是当x很大时就会产生很大的中间结果。我们希望加速运算并且不产生大结果。From: http://blog.youkuaiyun.com/sqx2011/article/details/8241713我们知道模运算满足分配率,(a*b)mod n = ((a mod n)*(b mod n)) mod n,转载 2014-09-17 11:30:58 · 1288 阅读 · 0 评论 -
poj-1023
//184K 0MS C++ #include #include using namespace std;char NP[65]; //-1: n, 1: pchar str[80];char digitUsed[80];char binaryExpression[80];int caseNum;int length;long long val;void sol原创 2014-09-17 17:10:08 · 633 阅读 · 0 评论 -
巧妙的位运算及模运算
From: blog.sina.com.cn/s/blog_50107a8b0100f0vx.html输入2的n次方:如果突然要你输入2的19次方,你是不是还要想一下呢?敲个524288多累啊。用位运算:1 乘除2的倍数:千万不要用乘除法,非常拖效率。只要知道左移1位就是乘以2,右移1位就是除以2就行了。比如要算25 * 4,用25 判断偶数:a %2取模转载 2014-09-17 13:44:04 · 780 阅读 · 0 评论 -
约瑟夫环
From: http://hi.baidu.com/anywei/item/294351b5f432f144ba0e12f2约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围;从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。前几天,在一篇文章中得知了转载 2014-09-15 11:52:27 · 392 阅读 · 0 评论 -
poj-1317
#include #include #include #include using namespace std;#define maxl 75int key;char cipher_text[maxl];char plain_text[maxl];bool is_letter(char ch){ return ch = 'a';}int get_code(c原创 2014-09-14 11:36:53 · 606 阅读 · 0 评论 -
poj-2886
// 26584K 1407MS G++#include #include #include using namespace std;#define MAX 500050struct ChildeTreeNode { int childId; int childNum; int left; int right;};typedef str原创 2014-08-01 12:13:27 · 717 阅读 · 0 评论 -
反素数深度分析
From: http://blog.youkuaiyun.com/ACdreamers/article/details/25049767今天要我要讲的是反素数,在ACM中也算是常见的考点,那么对于搞ACM的同学来说,很有必要搞清楚它,所以接下来我会很详细地讲解。 在讲解反素数之前,我们先来看反素数的概念。 反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任转载 2014-08-01 12:18:50 · 400 阅读 · 0 评论 -
poj-2635
// 1652K 875MS G++ 1000// 1648K 1313MS G++ 10000#include #include #include #include const int MAX = 1000100;char notPrime[MAX+1];int PrimeNum;int Primes[MAX];void checkPrime() {原创 2014-08-25 11:50:38 · 628 阅读 · 0 评论 -
poj-3292
//5248K 16MS G++#include #include const int MAX = 1000010;char HPNumber[MAX];int HSPNumber[MAX];void table() { memset(HPNumber, 0 ,sizeof(HPNumber)); memset(HPNumber, 0 ,sizeof(HS原创 2014-08-26 11:21:30 · 451 阅读 · 0 评论 -
POJ-2115
// 356K 0MS G++ #include #include long long EXTENDED_EUCLID(long long a,long long b,long long& x,long long& y) { if(b==0) { x=1; y=0; return a; }原创 2014-08-26 13:54:37 · 595 阅读 · 0 评论 -
poj-1061
// 380K 32MS G++#include #include long long EXTENDED_EUCLID(long long a,long long b,long long& x,long long& y) { if(b==0) { x=1; y=0;原创 2014-08-28 15:10:30 · 458 阅读 · 0 评论 -
poj-1519
//132K 0MS C++#include #include using namespace std;long long getDigitSum(long long val) { long long digitSum = 0; if (val < 10) { return val; } else { while(val) {原创 2014-09-11 14:52:05 · 536 阅读 · 0 评论 -
poj-1989
//144K 141MS C++#include #include using namespace std;int K;int N;const int MAX = 10001;char flag[MAX];int completeCollectionNum = 0;int main() { while(scanf("%d %d", &N, &K) !=原创 2014-09-11 16:24:53 · 490 阅读 · 0 评论 -
poj-1491
// /148K 0MS C++#include #include #include int val[55];int valNum;int gcd(int p, int q) { int r = p%q; if (r == 0) { return q; } else { return gcd(q, r); }原创 2014-09-11 12:38:20 · 477 阅读 · 0 评论 -
poj-2590
// 此题可用数学方法解决,复杂度O(n)。// 观察规律如下:// 1 1 1*1 1 2*1-1// 1 1 2 1*1+1 2 2*1// 1 2 1 4 2*2 3 2*2-1// 1 2 2 1 6 2*2+2 4 2*2// 1 2 3 2 1 9 3*3原创 2014-09-12 09:01:27 · 518 阅读 · 0 评论 -
poj-1702
//384K 79MS G++#include #include using namespace std;const int MAX = 22;long long weights[MAX];void init() { int res = 1; for (int i = 0; i < MAX; i++) { weights[i] = res; res *= 3;原创 2014-09-13 21:53:18 · 500 阅读 · 0 评论 -
poj-1401
//408K 375MS G++#include #include long long get2FactorNum(long long N) { long long res = 0; while(N) { res += N/2; N /= 2; } return res;}long long get5FactorN原创 2014-09-17 14:26:42 · 542 阅读 · 0 评论