这题……一开始没想到 后来

题意就是求区间素数对最大和最小距离

发现必须处理所有素数

复杂度要求是O(n)~O(nlgn)

考虑分开求质数和合数 其实就是筛法筛合数

最后遍历一遍找最大最小值即可

然后这个方法筛素数到R½就可以了

也就是50000(WA是写的40000……)

Time cost:55min

Code:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<queue>
 6 #include<vector>
 7 #define ms(a,b) memset(a,b,sizeof a)
 8 #define rep(i,a,n) for(int i = a;i <= n;i++)
 9 #define per(i,n,a) for(int i = n;i >= a;i--)
10 #define inf 2147483647
11 using namespace std;
12 typedef long long ll;
13 ll read() {
14     ll as = 0,fu = 1;
15     char c = getchar();
16     while(c < '0' || c > '9') {
17         if(c == '-') fu = -1;
18         c = getchar();
19     }
20     while(c >= '0' && c <= '9') {
21         as = as * 10 + c - '0';
22         c = getchar();
23     }
24     return as * fu;
25 }
26 const int N = 100005;
27 //head
28 ll l,r;
29 ll mindiv[N],prime[N];
30 int top;
31 void initprime(int n) {
32     rep(i,2,n) {
33     if(!mindiv[i]) prime[++top] = i;
34     for(int j = 1;j <= top && i * prime[j] <= n;j++) {
35         mindiv[prime[j] * i] = prime[j];
36         if(i % prime[j] == 0) break;
37     }
38     }
39 }
40
41 int flag[N<<4],tot;
42
43 int main() {
44     initprime(50000);
45     while(~scanf("%lld%lld",&l,&r)) {
46     tot++;
47     if(l == 1) l++;
48     rep(i,1,top) {
49         if(prime[i] * prime[i] > r) break;
50         rep(j,(l+prime[i]-1)/prime[i],r/prime[i])
51         if(j > 1) flag[j * prime[i] - l] = tot;
52     }
53     ll minn = 10000007,maxx = 0;
54     ll minid[2],maxid[2];
55     ll cur = 0,curr = 0;
56     rep(i,l,r) {
57         if(flag[i-l] == tot) continue;
58         cur = curr,curr = i;
59         if(!cur) continue;
60         if(curr - cur < minn) minn = curr - cur,minid[0] = cur,minid[1] = curr;
61         if(curr - cur > maxx) maxx = curr - cur,maxid[0] = cur,maxid[1] = curr;
62     }
63     if(!maxx) puts("There are no adjacent primes.");
64     else printf("%lld,%lld are closest, %lld,%lld are most distant.\n",minid[0],minid[1],maxid[0],maxid[1]);
65     }
66     return 0;
67 }

转载于:https://www.cnblogs.com/yuyanjiaB/p/9777684.html

poj2689Prime Distance相关推荐

  1. POJ2689-Prime Distance【质数,数论】

    正题 题目链接:http://poj.org/problem?id=2689 题目大意 求闭区间[L,R][L,R][L,R]中相邻的最远和最近的两个质数. 解题思路 我们可以用前R−−√个质因子筛这 ...

  2. 2018 Google kickstart Problem A. Planet Distance

    题目描述 Small dataset 3 ≤ N ≤ 30. Large dataset 3 ≤ N ≤ 1000.input 2 5 1 2 2 3 3 4 2 4 5 3 3 1 2 3 2 1 ...

  3. 字符串编辑距离(Edit Distance)

    一.问题描述 定义 字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符 ...

  4. Levenshtein distance 编辑距离算法

    这几天再看 virtrual-dom,关于两个列表的对比,讲到了 Levenshtein distance 距离,周末抽空做一下总结. Levenshtein Distance 介绍 在信息理论和计算 ...

  5. 【leetcode】1030. Matrix Cells in Distance Order

    题目如下: We are given a matrix with R rows and C columns has cells with integer coordinates (r, c), whe ...

  6. leetcode Edit Distance

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4051082.html 题目链接:leetcode Edit Distance 最短编辑距离, ...

  7. 解题报告(一)F、(2018 ACM - ICPC shenyang I)Distance Between Sweethearts(数学期望 + 乘法原理 + FWT)(4.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  8. 点云距离度量:完全解析EMD距离(Earth Mover's Distance)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨刘昕宸@知乎 来源丨https://zhuanlan.zhihu.com/p/270675634 ...

  9. R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离、dist函数计算矩阵中两两元素的曼哈顿距离

    R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离.dist函数计算矩阵中两两元素的曼哈顿距离 目录 R语言计算曼哈顿距离(Manhattan Distance ...

最新文章

  1. 利用被入侵的路由器迈入内网——抓包,利用路由器漏洞入侵,进行流量劫持...
  2. opencv mat 修改_OpenCV中initUndistortRectifyMap函数存在bug原因探究
  3. Redis数据持久化之AOF持久化
  4. 建立代理,而不是框架
  5. 中缀表达式转换为前缀或后缀表达式的手工做法
  6. MYSQL 源代码编绎脚本
  7. ubuntu16.04安装wordpress
  8. 使用HanLP分词时,词性标注错误的问题
  9. C++ 把引用作为函数参数
  10. 推荐阅读投资理财经典55本
  11. 「深度小课堂」如何开发一款属于自己的时尚屏保应用?
  12. ❤️PPT素材网站推荐❤️让你的PPT更加迷人❤️
  13. 高淇java_关于高淇JAVA中SORM总结学习笔记详细个人解释
  14. 软件工程导论复习之可行性研究
  15. 免费手机号码归属地查询接口
  16. 法语语法学习笔记——代词(1)
  17. [UOJ#454][UER#8]打雪仗
  18. 真香,如何关闭微信朋友圈的广告
  19. 4. 自动封IP和解IP
  20. 自动化爬取淘宝数据--(保存到文本中)

热门文章

  1. FreeBSD 安装axel提高ports的安装速度
  2. 【Javascript】javascript学习 六 七 JavaScript 变量/运算符
  3. Err.number错误号和错误说明(一)
  4. 【Java从0到架构师】SpringBoot - SpringMVC
  5. 记事本之修改非txt文档
  6. GA遗传算法入门到掌握
  7. 敲重点,数据需要这么做才能成为资产
  8. 一次完整的数据分析实战!仅用4步,效率吊打Excel和Python
  9. 你给我这么多报表,让我如何是好
  10. 帆软报表二次开发之读取.properties配置文件