• SPOJ FRQPRIME


    题目链接http://www.spoj.com/problems/FRQPRIME/

    题目大意:询问[2,N]区间内的包含素数个数至少为K的区间的个数。

    解题思路:素数个数前缀和+二分。哪儿位大侠有好方法的话希望在评论区说明。

    代码:

     1 const int inf = 0x3f3f3f3f;
     2 const int maxn = 1e6 + 5;
     3 int sum[maxn];
     4 bool vis[maxn];
     5 int n, k;
     6 
     7 void dowork(){
     8     memset(vis, 0, sizeof(vis));
     9     memset(sum, 0, sizeof(sum));
    10     for(int i = 2; i < maxn; i++)
    11         for(int j = i + i; j > 0 && j < maxn; j += i)
    12             vis[j] = 1;
    13     for(int i = 2; i < maxn; i++)
    14         if(!vis[i]) sum[i] = sum[i - 1] + 1;
    15         else sum[i] = sum[i - 1];
    16     
    17 }
    18 void solve(){
    19     if(k == 0){
    20         ll u = n;
    21         ll ans = u * (u - 1) / 2;
    22         printf("%lld
    ", ans);
    23         return;
    24     }
    25     ll ans = 0;
    26     for(int i = 2; i <= n; i++){
    27         int u = sum[i - 1] + k;
    28         int v = lower_bound(sum, sum + n + 1, u) - sum;
    29         ll x = n - v + 1;
    30         ans += x;
    31     }
    32     printf("%lld
    ", ans);
    33 }
    34 int main(){
    35     dowork();
    36     int t;
    37     scanf("%d", &t);
    38     while(t--){
    39         scanf("%d %d", &n, &k);
    40         solve();
    41     }
    42 }

    题目:

    FRQPRIME - Frequent Prime Ranges

    A range [L..H] is called a K-Frequent Prime range if there are atleast K primes amongst the numbers L,L+1,..,H. Given N and K, calculate how many subranges of the range [2..N] are K-Frequent Prime.

    Input

    The first line contains the number of test cases T. Each of the next T lines contains 2 integers N and K.


    Output

    Output T lines, one corresponding to each test case, containing the required answer.

    Example


    Sample Input :
    4
    2 1
    5 2
    5 1
    9 3

    Sample Output :
    1
    4
    9
    8

    Note : For the first test case, the only valid subrange is [2..2], whereas for the second test case, the valid subranges are : [2..3],[2..4],[2..5],[3..5].

    Constraints

    1 <= T <= 100

    2 <= N <= 100000

    0 <= K <= 10000

  • 相关阅读:
    (转)贝叶斯推理及应用
    (转)zero copy原理
    (转)c指针问题
    (转)c++ new/delete,new[]/delete[]原理解析
    (转)Spring AOP编程原理、Demo
    (转)spring IOC、DI理解
    Django小例子 – 模型数据的模板呈现
    初探Django Admin(一)
    Windows7下搭建Django运行环境
    初探Django线程发送邮件
  • 原文地址:https://www.cnblogs.com/bolderic/p/7421502.html
Copyright © 2020-2023  润新知