洛谷 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 ...
随机推荐
- 【NOI2002】荒岛野人
[题解] 可以枚举m 那么任意两个野人之间有 c[i]+x*p[i]=c[j]+x*p[j] (mod m) 无解,或 x 的最小值<=min(l[i] , l[j]) 化为丢番图方程:(p[ ...
- 内存cache使用的场景
Q.业务场景内为什么要使用内存cache? A.为了利用内存cache的优点, 解决业务场景内的缺陷 Q.内存cache的优点和缺点 A.优点: 内存读写速度比磁盘块 缺点: 内存空间有限, 内存单价 ...
- win32多线程 (四) Mutex
Mutex 用途和critical section 非常类似,不过Mutex是内核对象,速度比section慢.Mutexes可以跨进程使用.另外Mutex在等待的时候可以设置等待时间. 以下是两种 ...
- 推荐一款基于XNA的开源游戏引擎《Engine Nine》
一.前沿导读 XNA是微软基于.Net部署的下一代3D/2D游戏开发框架,其实XNA严格来说类似下一代的DirectX,当然不是说XNA会取代DirectX,但是基于XNA我们对于面向XBOX360, ...
- Laravel 测试教程
参考链接:https://laravel-news.com/seeding-data-testing 迁移文件 修改 database/migrations/2014_10_12_000000_cre ...
- - Unknown tag (c:set).
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- MySQL性能调优与架构设计——第8章 MySQL数据库Query的优化
第8章 MySQL数据库Query的优化 前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 ...
- stuff for xml path
SumOrg=stuff((select '/'+User_Org from V_RubricInfoRefer t where t.RubricID=V_RubricInfoRefer.Rubric ...
- window7 Oracle卸载步骤
完全卸载oracle11g步骤:1. 开始->设置->控制面板->管理工具->服务(或 运行 services.msc) 停止所有Oracle服务.2. 开始->程序-& ...
- asp.net微信内置浏览器下Session失效
问题记录:仅限安卓端微信内置浏览器,服务器集群设置了黏性Session,在Post请求时会强制走代理,导致出去的ip指向另一台服务器,黏性Session失效,用户状态无法保存. 目前想知道除了设置Se ...