zoukankan      html  css  js  c++  java
  • Codeforces Round #147 (Div. 2) C. Primes on Interval 二分

    C. Primes on Interval

    链接:

    http://codeforces.com/contest/237/problem/C

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm>
     6 #include <vector>
     7 #include <string>
     8 #include <map>
     9 #include <set>
    10 #include <stack>
    11 #include <queue>
    12 #include <functional>
    13 using namespace std;
    14 #define rep(i,a,n) for (int i=a;i<=n;i++)
    15 #define per(i,a,n) for (int i=n;i>=a;i--)
    16 #define pb push_back
    17 #define mp make_pair
    18 #define all(x) (x).begin(),(x).end()
    19 #define fi first
    20 #define se second
    21 #define SZ(x) ((int)(x).size())
    22 typedef vector<int> VI;
    23 typedef long long ll;
    24 typedef pair<int, int> PII;
    25 const ll mod = 1000000007;
    26 // head
    27 
    28 const int maxn = 1e6 + 7;
    29 int prime[maxn];
    30 int a, b, k;
    31 
    32 void IsPrime() {
    33     prime[0] = prime[1] = 0; prime[2] = 1;
    34     for (int i = 3; i<maxn; i++)
    35         prime[i] = i % 2 == 0 ? 0 : 1;
    36     int t = (int)sqrt(maxn*1.0);
    37     for (int i = 3; i <= t; i++)
    38         if (prime[i])
    39             for (int j = i*i; j<maxn; j += 2 * i)
    40                 prime[j] = 0;
    41 }
    42 
    43 bool check(int m) {
    44     rep(i, a, b - m + 1) if (prime[i + m - 1] - prime[i - 1] < k) return false;
    45     return true;
    46 }
    47 
    48 int main()
    49 {
    50     IsPrime();
    51     cin >> a >> b >> k;
    52     rep(i, a, b) prime[i] = prime[i - 1] + prime[i];
    53     prime[a - 1] = 0;
    54     int l = 1, r = b - a + 1, ans = maxn;
    55     while (l <= r) {
    56         int mid = (l + r) / 2;
    57         if (check(mid)) {
    58             r = mid - 1;
    59             ans = mid;
    60         }
    61         else l = mid + 1;
    62     }
    63     if (ans == maxn) cout << -1 << endl;
    64     else cout << ans << endl;
    65     return 0;
    66 }
  • 相关阅读:
    SQL Server中的sysobjects
    SQL:事务(1)
    继续探究HTML与CSS:图像映射
    SQL:事务(2)
    找工作?该复习了!(转)
    继续探究HTML与CSS:!important 和 @import 规则
    JAVA数据结构:二叉树
    SQL:Like 通配符及特殊用法Escape
    JavaScript高级程序设计:在HTML中使用JavaScript
    一个有趣的时钟
  • 原文地址:https://www.cnblogs.com/baocong/p/6432925.html
Copyright © 2011-2022 走看看