洛谷 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代码:
#include<cstdio>
#include<iostream> using namespace std; int a, b;
const int maxn = ; int cnt;
int prime[maxn];
int vis[maxn];
bool pp[maxn]; inline void is_prime(){
for(int i = ; i <= b; i++){
if(!vis[i]) prime[++cnt] = i, pp[i] = ;
for(int j = ; j <= cnt && i * prime[j] <= b; j++){
vis[i * prime[j]] = true;
if(i % prime[j] == ) break;
}
}
}//欧拉筛判断质数 inline int hui_wen(int x){
int t = ;
int y = x;
while(y != ){
t = t * + y % ;
y = y / ;
}
if(t == x) return ;
return ;
}//判断回文数 int main(){
scanf("%d%d", &a, &b);
if(b > ) b = ;//重点
is_prime();
for(int i = a; i <= b; i++){
int n = i;
if(hui_wen(n) && pp[n] ) printf("%d\n", n);
}
return ;
}
洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome的更多相关文章
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes【取回文数/数论/字符串】
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- Java实现 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
import java.util.Scanner; public class Main { private static Scanner cin; public static void main(St ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(求100000000内的回文素数)
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- luogu P1217 [USACO1.5]回文质数 Prime Palindromes x
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(stringstream,sizeof(num)/sizeof(num[0]),打表)
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)
技巧:就是偶数位的回文数字一定不是质数---------证明:奇数位之和sum1==偶数位之和sum2的数字可以被11整除.(11除外,这是一个坑点) 最高位,最低位必须是 1, 3, 7, 9 暴力 ...
- (函数)P1217 [USACO1.5]回文质数 Prime Palindromes
题解: 第一次: 算法复杂度过高,导致编译超时,需要优化 #include<stdio.h>#include<math.h>int a[100000001] = { 0 };i ...
随机推荐
- java之飞机大战的记分标准
import java.awt.Image; import java.util.ArrayList; import java.util.Timer; import javax.swing.ImageI ...
- saltstack系列(一)——介绍与安装
saltstack简介 saltstack 是服务器基础架构集中化管理平台.具备配置管理.远程执行.监控等功能. saltstack 基于python. 注意: puppet是一种Linux.Unix ...
- Spring Bean定义的三种方式
<!--Spring容器启动配置(web.xml文件)--> <context-param> <param-name>contextConfigLocation&l ...
- json_encode和json_decode和isset和array_key_exists
1.json_decode() json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool ...
- SolrCloud中的文件与Collection管理
转载请出自出处:http://eksliang.iteye.com/blog/2124078 http://eksliang.iteye.com/ 一.内嵌启动SolrCloud时端口默认分配 当 S ...
- selenium2 断言失败自动截图 (四)
一般web应用程序出错过后,会抛出异常.这个时候能截个图下来,当然是极好的. selenium自带了截图功能. //获取截图file File scrFile= ((TakesScreenshot)d ...
- 张超超OC基础回顾03_结构体类型作为成员变量的特殊用法
直接上例子: 要求: 合理的设计一个”学生“类 学生有* 姓名* 生日两个属性和说出自己姓名生日方法 要求利用设计的学生类创建学生对象,并说出自己的姓名和年龄 描述学生类 事物名称: 学生(Stud ...
- spring aop自动代理注解配置之二
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 重命名Docker容器
重命名Docker容器: Docker rename [Old container name] [New container name]
- c语言学习笔记 if语句执行流程和关系运算符
回想现实生活中,我们会遇到这样的情况,如果下雨了就带伞上班,如果没下雨就不带伞上班,这是很正常的逻辑.程序是解决生活中的问题的,那么自然在程序中也需要这样的判断,当满足某个条件的时候做一件事情,这种东 ...