记录编号 128157 评测结果 AAAAAAAA
题目名称 [清江中学2010] 跳格子I 最终得分 100
用户昵称 Gravatar奇诺 是否通过 通过
代码语言 C++ 运行时间 0.056 s
提交时间 2014-10-16 21:24:23 内存使用 10.17 MiB
显示代码纯文本
  1. #include<cstdio>
  2. //-----------------------------------------------------------------------
  3. int n,m;
  4. int i,j,k;
  5. long long l;
  6. int r[2333333];
  7. int s[23333],c[233333];
  8. //-----------------------------------------------------------------------
  9. inline void work (int d) { for (k=1; d>1; k++) while (d>1&&!(d%s[k])) { d/=s[k]; c[k]+=j; } }
  10. //-----------------------------------------------------------------------
  11. int main ( )
  12. {
  13. freopen ( "tiao.in" , "r" , stdin );
  14. freopen ( "tiao.out" , "w" , stdout );
  15. scanf("%d%d",&n,&m); if (n<m) n^=m,m^=n,n^=m;
  16. //--
  17. for (i=2; i<=n+m-2; i++)
  18. {
  19. if (!c[i]) s[++s[0]]=i;
  20. for (j=1; j<=s[0]&&i*s[j]<=n+m-2; j++)
  21. {
  22. c[i*s[j]]=1;
  23. if (i%s[j]==0) break;
  24. }
  25. }
  26. //--
  27. for (i=1; i<=s[0]; i++) c[i]=0;
  28. for (i=n,j=0+1; i<=n+m-2; i++) work(i);
  29. for (i=2,j=0-1; i<=0+m-1; i++) work(i);
  30. //--
  31. r[r[0]=1]=1;
  32. for (i=1,k=0+0; i<= s[0]; i++) if (c[i]--)
  33. {
  34. for (l=s[i]; c[i]; c[i]--) l*=s[i];
  35. for (j=1; j<=r[0]; r[j++]=k%10) k=(k/10)+r[j]*l;
  36. while (k/=10) r[++r[0]]=k%10;
  37. }
  38. for (i=r[0]; i; i--) printf("%d",r[i]);
  39. }