- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 poj解题报告——1152
题意还是很明确的,给你一个N进制的整数R,题目保证R能被N-1整除,让你求符合条件的最小的N。 但是这题的数论证明有点困难了,我在此引用一下别人的证明,没有证明真的不好做啊。 设输入的是abcd,假设其解是n进制,(a*n*n*n + b*n*n + c*n + d)%(n-1)=0=>( (a*n*n*n)%(n-1)+ (b*n*n)%(n-1)+
2014-11-30 15:35:03 463
原创 poj解题报告——1008
这个玛雅历呀,难是不难,就是看着眼花,历法题就是这样,在数学计算的基础上加文字坑人。其实这题就是算模拟,算是放松放松心情吧。代码如下#include#includechar H[20][10]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin
2014-11-30 14:47:24 411
原创 poj解题报告——2191
梅森素数啊,啊哈哈,其实这题最快的做法是打表,但是打表有点太无语了,不过我还是贴了代码。 题意:判断所有质数i代码如下#include #include #include #include __int64 num[70]={1},queue[10];int Prime(int x){ int i; for(i=2;i*i
2014-11-29 23:19:38 594
原创 poj解题报告——2126
题意好理解,实系数多项式因式分解定理 每个次数大于零的实系数多项式都可以在实数域上唯一地分解成一些一次或二次不可约因式的乘积。所以对于大于2的情况一定可以分解。对于代码如下#includevoid main(){ int n; int a, b, c; scanf("%d",&n); if(n { pri
2014-11-29 22:43:39 634
原创 poj解题报告——3252
我实在对这题无语啊,做了一星期啊,那叫一个坑啊,题意不难理解,如果一个十进制数转成二进制数时,其0的个数不少于1的个数则为,round number。问一段区间里的round number的个数。这还是比较容易想到用组合数的,关键在于怎么用。 实在是没辙了,就看了看discuss,又看了看大神的代码,于是代码就出来了代码如下#includeint c[33][
2014-11-26 20:46:47 564
原创 poj解题报告——2115
这题的题意不难理解,对C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。但是问题来了,这里涉及到了同余方程的求解问题,这就要用扩展欧几里得算法,然后就要各种用公式,之前有一道青蛙约会的那题poj1061,用的做法也差不多。本题是要求解(a+c*x)mod2^k=b,求x的最小解,变式得 c*x=(b-a)
2014-11-25 20:16:18 595
原创 poj解题报告——3292
#include#include#define size 1000001int H_Number[size+1]; void init(){ int i,j,k,m,p; memset(H_Number,0,sizeof(H_Number)); for(i=5;i { for(j=5;j {
2014-11-25 15:06:44 388
原创 poj解题报告——1942
代码如下#include#includevoid main(){ double sum; unsigned n,m,a,b; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; a=n+m; b
2014-11-23 20:56:47 533
原创 poj解题报告——1845
代码如下#include#include#define size 10000#define mod 9901__int64 sum(__int64 p,__int64 n); __int64 power(__int64 p,__int64 n); __int64 sum(__int64 p,__int64 n){ if(n==0) r
2014-11-23 00:09:35 360
原创 poj解题报告——2635
这题特别好理解,就是代码坑啊。题意就是给一个数,这个数是两个大素数的积,再给出一个数,如果最小的素数比给的数大,打印GOOD,否则打印BAD和最小的素数。 这题用的方法是高精度求模+同余模定理。还有素数打表,把10^6内的素数全部预打表,在求模时则枚举到小于L为止。注意打表不能只打到100W,要保证素数表中最大的素数必须大于10^6。千进制的性质与十进制相似。例如,把K=1234
2014-11-22 23:24:15 475
原创 poj解题报告——1019
这题是组合数学啊,题意是给1、12、123、1234、12345、123456 ……这样的数字,问第i个数字是多少。这题的难点在于第i个数与第i-1个数的位数差不定,可以利用公式:(int)log10(double(i))+1,当增加的数字是10的幂次关系时个数会变化。这样操作起来会方便多,而且打表会更好一点。代码如下#include#includeunsigned int
2014-11-20 16:04:45 438
原创 poj解题报告——1269
#includevoid main(){ int t; double x1,y1,x2,y2,x3,y3,x4,y4,x,y,k1,k2,b1,b2; scanf("%d",&t); printf("INTERSECTING LINES OUTPUT\n"); while(t--) { scanf("%lf%lf
2014-11-20 15:01:56 385
原创 poj解题报告——2370
daima#include#includeint cmp(const int *a,const int *b){return *(int *)a-*(int *)b;}void main(){int i,k,a[100],sum;while(scanf("%d",&k)!=EOF){for(i=0;i{scanf("%d",&a[i]);
2014-11-18 09:28:42 437
原创 poj解题报告——2291
#include #include int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}void main(){ int m,n,i,j,a[1005],b[1005]; scanf("%d",&m); while(m--) {
2014-11-17 17:31:15 592
原创 poj解题报告——2586
#includevoid main(){ double s,d; int surplus; int flag; while(scanf("%lf%lf",&s,&d)!=EOF) { flag=0; surplus=0; if(s>=4*d) flag=1;
2014-11-16 18:13:50 434
原创 poj解题报告——1254
这题是代码如下#include#include#define pi 3.141592653589793238void main(){ int x1,y1,x2,y2,d1,d2,t; double k1,k2,x,y; scanf("%d",&t); while(t--) { scanf("%d%d
2014-11-15 15:28:49 471
原创 poj解题报告——1328
不得不说,这题是让我饱受折磨,毕竟第一次做贪心算法,而且WA了好多次,幸好有学长的帮助,最终找到了问题所在,是在快排上是问题,double高位不可向int低位转换,由于一开始强制转换导致虽然样例和其他的测试数据过了,但还是WA,现在改完了就对了,附上AC代码,ps:这题通过率是22%,真心不简单代码如下#include#include#includestruct poi
2014-11-15 14:05:47 514
原创 poj解题报告——1401
代码#includevoid main(){ int n,m,sum; scanf("%d",&n); while(n--) { scanf("%d",&m); sum=0; while(m>=5) { sum+=m/5;
2014-11-14 22:56:45 343
原创 poj解题报告——2242
#include#include#define pi 3.141592653589793void main(){ double C,r,x1,y1,x2,y2,x3,y3,a,b,c,s,p; while(scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF) { a=sqr
2014-11-12 15:27:31 610
原创 poj解题报告——2406
这题不算难,从输入输出上就看懂题目的意思了,这题用到的算法就是KMP算法,算法本身没什么难度,但是我做的时候超时了,超时的原因居然是我少加了一个0 ,N的定义我原来定的是100000,现在定1000000,就是因为这个,我那个欲语泪先流啊。代码如下#include#include#define N 1000000char s[N];int next[N],len;
2014-11-12 14:26:26 528
原创 poj解题报告——2209
#include#includevoid main(){ int m,i,n; int a,sum; scanf("%d",&m); sum=0; scanf("%d",&n); for(i=1;i { scanf("%d",&a); if(pow(a,n)>0)
2014-11-10 12:43:40 842
原创 poj解题报告——3299
代码如下#include#include#includevoid td(double t,double d){ double p,e,h; e=6.11*exp(5417.7530 * ((1/273.16) - (1/(d+273.16)))); h=(0.5555)*(e - 10.0)+t; printf("T %.1lf D
2014-11-09 17:16:42 406
原创 poj解题报告——1012
#includeint a[14];int f(int k,int m){ int n,i,s; n=2*k;s=0; for(i=0;i { s=(s+m-1)%(n-i); if(s return 0; } return 1;}void main()
2014-11-08 14:31:00 480
原创 poj解题报告——1250
#include#includevoid main(){ char c,p[26]; int n,m,leave; while(scanf("%d%*c",&n),n) { m=leave=0; memset(p,0,sizeof(p)); for(c=getchar();c!='\n';c=
2014-11-07 23:00:10 459
原创 poj解题报告——1218
代码如下#includevoid main(){int n,i,j,k,m;scanf("%d",&n);for(i=1;i{m=0;scanf("%d",&k);for(j=1;j{if(j*jm++;}printf("%d\n",m);}}
2014-11-06 21:39:31 509
原创 poj解题报告——1002
代码如下#include #include #define N 10000000 int a[10000000]; char ch(char c) { if(c=='2'||c=='A'||c=='B'||c=='C') return '2'; else if(c=='3'||c=='D'||c
2014-11-04 19:30:01 615
原创 poj解题报告——1061
代码#include__int64 exgcd(__int64 a,__int64 b,__int64 x,__int64 y){ __int64 r,t; if(b==0) { x=1; y=0; return a; } r=exgcd(b,a%b,x,y); t=x
2014-11-02 20:07:53 442
原创 poj解题报告——1032
#include void main(){ int n,i,j,m; int a[50]={0}; n=i=j=m=0; scanf("%d", &n); for (i=2,j=0;i { a[j]=i; m+= i; if (m>n) {
2014-11-02 00:51:20 443
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人