AC代码:

#include <cstdio>

#include <cstring>

#include <iostream>

#include <algorithm>

using namespace std;

const int maxn = 1001000;

#define  inf (1<<29)

//上面的位运算还真心没有看懂

// p[i] is i-th prime's position

bool pp[maxn]; //里面保存的是一个素数的信息

int p[maxn] , cnt = 0; //将素数保留在数组中间

int ss[maxn] , tt[maxn];//在这里申请了这么多的数组我就是没有看懂了是到底为啥

void init() {

cnt = 0;

pp[0] = pp[1] = 1;//前两个数字都是不予考虑的

tt[0] = tt[1] = -1;

for(int i=2;i<maxn;i++) {

if(!pp[i]) {

p[cnt++] = i; //这个是将素数保留在表格中间吗?

for(int j=i+i;j<maxn;j+=i) {

pp[j] = true; //这个是素数达标

}

}

tt[i] = cnt - 1;

}

for(int i=0;i<maxn;i++) {

if(!pp[i]) ss[i] = tt[i];

else ss[i] = tt[i] + 1;

}

}

int main() {

init();

int a , b , k;

while(~scanf("%d%d%d" , &a,&b,&k)) {

int s = ss[a] , t = tt[b];

int num = t - s + 1;

if(num < k) {//先判断在这个区间之中里面的素数量是否达到了题目的要求,否则直//接退出

printf("-1\n");

continue;

}

int ans = 0;

int tmp;

tmp = b - p[t-k+1] + 1;

if(tmp > ans) ans = tmp;

tmp = p[s+k-1] - a + 1;

if(tmp > ans) ans = tmp;

for(int i=s;i+k<=t;i++) {

tmp = p[i+k] - p[i];

if(tmp > ans) ans = tmp;

}

printf("%d\n" , ans);

}

return 0;

}

//本题的主要思路是通过打表,成功后就可以比较简单的得到结果

Primes on Interval的更多相关文章

  1. Primes on Interval(二分 + 素数打表)

    Primes on Interval Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u ...

  2. HDU 5901 Count primes 论文题

    Count primes 题目连接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5901 Description Easy question! C ...

  3. hdu 5901 Count primes (meisell-Lehmer)

    Count primes Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  4. Codeforces Round #147 (Div. 2)

    A. Free Cash 判断值相同的最长长度. B. Young Table 按从上到下,从左到右排序,每个位置最多交换一次. C. Primes on Interval \(p_i\)表示位置\( ...

  5. 130712周赛(CF)

    这次练习从第一题开始注定水了,1A的题目wa了3次,第三题走进了错误的思想,wa到死....其他三个题目看都没看...........赛后慢慢搞. A. Free Cash 巨水的一题,直接找出每个时 ...

  6. codeforce --- 237C

    C. Primes on Interval time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  7. 13年7月13日CF练习 Codeforces Round #147 (Div. 2)

    这场div2可以说是我见过的比较水的一场吧.基本都是一眼题. 比赛地址http://acm.bnu.edu.cn/bnuoj/contest_show.php?cid=1836 题号是237A-237 ...

  8. Meissel Lehmer Algorithm 求前n个数中素数个数 【模板】

    Count primes Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  9. 『NYIST』第八届河南省ACM竞赛训练赛[正式赛一]-CodeForces 237C,素数打表,二分查找

    C. Primes on Interval time limit per test 1 second memory limit per test 256 megabytes input standar ...

随机推荐

  1. hibernate主键generator属性介绍

    increment(递增) 用于为long, short或者int类型生成唯一标识.只有在没有其他进程往同一张表中插入数据时才能使用. 在集群下不要使用. identity (标识)对DB2,MySQ ...

  2. KVM下windows虚拟机使用virtio驱动

    KVM下windows虚拟机默认disk使用的是Qemu IDE硬盘,网卡默认是rtl8139网卡.为了使kvm主机在相同的配置下,有更好的效率,可以将网卡和磁盘替换成virtio的驱动. windo ...

  3. mybatis笔记(一)

    mybatis (一)传值 三种方式 1.直接传值void getMessageList(int userId,String userName);mapper.xml 获取 #{0}代表userId ...

  4. sql语句的学习(2)

    7.统计:学号.姓名.语文.数学.英语.总分.平均成绩 8.列出各门课程的平均成绩.课程,平均成绩 9.列出数学成绩的排名(要求显示字段:学号,姓名,成绩,排名) 10.列出数学成绩在2-3名的学生( ...

  5. ubuntu 14.04 安装matlab2015b(破解版),具体软件请访问我的网盘~

    本文章转载自:http://www.cnblogs.com/ttzm/p/5475086.html 1.下载matlab的Unix版本:安装文件放在某目录下(如在Downloads下,则文件的完整路径 ...

  6. ZZNU 1163: 在线判题(指针专题)

    题目描述 Ignatius is building an Online Judge, now he has worked out all the problems except the Judge S ...

  7. Xcode-之项目重命名

    一.前言 在iOS开发过程中,对于以前的项目或者想改一下项目的名字,都会遇到比较麻烦的事情.直接改项目名,然而它会牵扯一大堆问题,并且不能把所有的名字都能改过来.有些文件改了项目名后,引导路径错误,导 ...

  8. 学习前端前必知的——HTTP协议详解

    前端人士必备的知识点,无论你是否有经验,看了此文绝对有收获 此文针对前端爱好者,前端求职者(话说面试时很容易考到哦) 原文参考博客园http://kb.cnblogs.com/page/130970/ ...

  9. BOS物流管理系统-第一天

    BOS物流管理系统-第一天-系统分析.环境搭建.前端框架 BoBo老师 整体项目内容目标: 对项目概述的一些理解 亮点技术的学习 注意学习方式:优先完成当天代码. 其他内容. 最终: 学到新的技术,会 ...

  10. 《JS权威指南学习总结--8.8.3 不完全函数》

    内容要点: 本节讨论的是一种函数变换技巧,即把一次完整的函数调用拆成多次函数调用,每次传入的实参都是完整实参的一部分,每个拆分开的函数叫做不完全函数(partial function),每次函数调用叫 ...