摘要: 该题是是给出前3个数,要么是等差要么是等比,要你求第k个数,这个题关键是用到快速取幂;#include<stdio.h>#include<stdlib.h>long long getq( long long t,int k ){ if( k==1 ) return t; long long q = getq( t,k/2 ); if( k%2 ) { return ( q*q*t )%200907; } else return ( q*q )%200907; }int main(){ ... 阅读全文
posted @ 2011-08-27 20:40 wutaoKeen 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 该题就是HUD 1792与HDOJ 1222 Wolf and Rabbit的结合,先判断公约数是否大于1,如果大于就一定输出Inf,否则,就输出m*n-n-m;#include<stdio.h>long long Gcd( long long a, long long b ){ return b==0?a:Gcd( b,a%b ); }int main(){ long long n,m; while( scanf( "%I64d%I64d",&n,&m ),n||m ) { if( Gcd( n,m )==1 ) { ... 阅读全文
posted @ 2011-08-27 17:56 wutaoKeen 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 要判断给定的n(2<=n<=10^18)是不是squarefree number;因为给定的数最大达到10^18,所以直接暴力肯定是杯具的TLE;我们知道 N必为 3种之一: 素数,素数的平方,两个不同素数之积。10^18=10^6^3;那么我们求质数就只要求到10^6就可以,因为大于10^6就只能是平方次方,不可能是立方,因此可以用开方来判断;假如我们求质数小于10^6,那么可能这个数是一个数的立方,或者是一个质数的平方乘以一个数,但不能开方,但又不能被前面的质数相除,因此会造成不是squarefree number的假象。实现思路:1. 计算1000000以下 素数,存于 nu 阅读全文
posted @ 2011-08-27 16:38 wutaoKeen 阅读(469) 评论(0) 推荐(0) 编辑