洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome
嗯...
这道题对于蒟蒻的我来说实在是TQL...
先看一下题:(题目链接:https://www.luogu.org/problemnew/show/P1217)
然后说一下我的做题过程吧:
一看到是普及-的题,就没有考虑什么筛法,只是用最暴力的筛素数的方法做的,然后就导致最后一个点TLE;
接着是一个改进,又用了埃氏筛,可是它太不稳定了,然后数组总是开小,然后就各种TLE,MLE,RE...
最后用的是欧拉筛(线性筛),然后还是最后一个点TLE...然后就很纳闷,看了题解之后才发现有这样的一个东西:
1.偶数位数回文数(除11)必定不是质数(自行百度),所以只要运行到10000000
然后发现将读入后的b进行一次判断就可以了,然后这种方法,暴力筛还是TLE,埃氏筛由于不稳定也TLE,最终还是只有欧拉筛(线性筛)好用....
思路:
主要是在a到b的这段区间中先判断是否为回文数(注意判断回文数的方法),并且用欧拉筛判断是否为素数即可...
重难点:
偶数位数回文数(除11)必定不是质数(自行百度),所以只要运行到10000000
否则会一直TLE(不开O2)
下面是欧拉筛的AC代码:
1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 int a, b; 7 const int maxn = 10000005; 8 9 int cnt; 10 int prime[maxn]; 11 int vis[maxn]; 12 bool pp[maxn]; 13 14 inline void is_prime(){ 15 for(int i = 2; i <= b; i++){ 16 if(!vis[i]) prime[++cnt] = i, pp[i] = 1; 17 for(int j = 1; j <= cnt && i * prime[j] <= b; j++){ 18 vis[i * prime[j]] = true; 19 if(i % prime[j] == 0) break; 20 } 21 } 22 }//欧拉筛判断质数 23 24 inline int hui_wen(int x){ 25 int t = 0; 26 int y = x; 27 while(y != 0){ 28 t = t * 10 + y % 10; 29 y = y / 10; 30 } 31 if(t == x) return 1; 32 return 0; 33 }//判断回文数 34 35 int main(){ 36 scanf("%d%d", &a, &b); 37 if(b > 10000000) b = 10000000;//重点 38 is_prime(); 39 for(int i = a; i <= b; i++){ 40 int n = i; 41 if(hui_wen(n) && pp[n] ) printf("%d\n", n); 42 } 43 return 0; 44 }
转载于:https://www.cnblogs.com/New-ljx/p/10686537.html
洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome相关推荐
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes 题解 C/C++
知识点: 回文数有两种 一种是单数位数,abcba,一种是双数位数,abccba 而双数位数是质数的只有11,即偶位回文数全不是质数除了11:所以不需要枚举到1亿,到1千万就好了 以下几种方法供参考 ...
- 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)
题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...
- 洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
我就叫大家打表吧,自己也刚学会: 由于有些题目直接提交又会超时,所以打表是一个不错的解决方法. 对于回文质数而言,判断回文,判断质数就ok了 1.存入文件 #include<bits/stdc+ ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)
P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes 题解(来源:洛古)
[USACO1.5]回文质数 Prime Palindromes 题目描述 因为 151 151 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 151 151 是回 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes——回文质数性质、打表
[USACO1.5]回文质数 Prime Palindromes 题目描述 因为 151151151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151151151 是回文质数. ...
- P1217 [USACO1.5]回文质数 Prime Palindromes
暴力输出5~1e8的回文质数 #include <bits/stdc++.h> using namespace std; int cnt; bool isprim(int x) //10^ ...
- 【素数】P1217 [USACO1.5]回文质数 Prime Palindromes
https://www.luogu.com.cn/problem/P1217 考点:素数.回文.二分.打表 题意: 找出5到1e8的回文素数. 解法: 直接暴力遍历1亿次必定超时,可以用打表法... ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)
技巧:就是偶数位的回文数字一定不是质数---------证明:奇数位之和sum1==偶数位之和sum2的数字可以被11整除.(11除外,这是一个坑点) 最高位,最低位必须是 1, 3, 7, 9 暴力 ...
最新文章
- 41.和为s的两个数字 VS 和为s的连续正数序列
- 漏洞分析技术专家聚会——博文视点OpenParty第二期
- 【面试招聘】春招面经集合 | 腾讯/字节/华为/东芝/360/Boss
- java天气app_MVP+RxJava2+Retrofit2 实况天气app
- PowerDesigner使用技巧
- MySQL笔记-简单配置主从库
- Visual Studio的语法着色终于调得赏心悦目
- 豪情-2014年年终总结
- flashback database操作步骤
- 人类迁徙计划 (feat.译者补完篇)
- Win10系统下激活系统和office2013教程
- 低版本浏览器(chrome小于40 firefox小于50 ie小于9)会提示升级信息
- 算法竞赛入门学习(篇一)
- Linux网络配置(配置网络IP地址)
- 管理经济学【五】之 生产要素投入的决策分析
- php爬取flash的交互数据库,flash用php连接数据库的代码
- Android编译Skia库
- 上海浦东新区计算机学校排名2015,最新2015浦东新区初中排名 分为四个档次
- 用于微小目标检测的上下文扩展和特征细化网络
- 培训班出身的程序员,和科班程序员有什么区别?