zoukankan      html  css  js  c++  java
  • CSU 1109 FIbonacciprime

    实际上就是求第(<=)600000个素数,但是。。要优化内存,要优化速度。。

    最重要的要估计第600000个素数有多大,直接打印当然行,但是。。

    总之学了素数定理:1/ln(n)的分布。。

     1 # include <stdio.h>
    2
    3 # define MAXN 600005
    4 # define LN 15
    5 # define INDEX(i) ((i) >> 5)
    6 # define OFFSET(i) ((i) % 32)
    7 # define GET_BIT(i) ((ptable[INDEX(i)]>>OFFSET(i)) & 0x1)
    8 # define SET_BIT(i) (ptable[INDEX(i)] |= (0x1<<OFFSET(i)))
    9
    10 int ptable[MAXN]; // int占4个字节32位,因此这里实际上只用MAXN/2大小足够了。。。
    11 int ans[MAXN+1];
    12
    13 int main()
    14 {
    15 int i, j, cnt, k;
    16
    17 for (cnt = 0, i = 3; cnt < MAXN; ++i)
    18 if (!GET_BIT(i)) for (ans[++cnt] = i, j = 2*i; j < LN*MAXN; j += i)
    19 SET_BIT(j);
    20
    21 while (~scanf("%d", &k))
    22 printf("%d\n", ans[k]);
    23
    24 return 0;
    25 }

    熬夜等AC,伤不起啊!!!

  • 相关阅读:
    03-字典
    02-列表
    01-字符串操作
    Django中的跨域问题
    Codeforces Round #617 (Div. 3) A
    Codeforces Round #717 (Div. 2) A
    如何在Vuespa中使用less
    excle导出
    ajaxFileUpload上传文件
    图片插入word
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2417287.html
Copyright © 2011-2022 走看看