HDU 1431 素数回文
有人问我这个问题。
个人感觉暴搜会TLE O(n*sqrt(n))。n=100000000;(推断素数用2~sqrt(n)+1 去除)
还是枚举好了。
枚举 1~10000,把他每一位存下来,回文数已知 left 。求 right ,然后组合起来。
比如 1 ,推断 11 是否素数。
比如 10 。推断 101 是否素数, 推断 1001 是否素数。
这样复杂度就是 O(n^2)。
開始我 bool pa[100000000] 准备用标记来确定。
结果MLE。
然后算了一下 总共同拥有多少个数,最多 781 个。 int pa[1000] 就能够装下了。
G++ 15ms
#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<vector>
#include<cmath> #define INF 0x7fffffff
#define eps 1e-8
#define LL long long
#define PI 3.141592654
#define CLR(a,b) memset(a,b,sizeof(a))
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define FOR0(i,a,b) for(int i=a;i>=b;i--)
#define pb push_back
#define mp make_pair
#define ft first
#define sd second
#define sf scanf
#define pf printf
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(),(v).end()
#define acfun std::ios::sync_with_stdio(false) #define SIZE 100000000 +1
using namespace std; int pa[1000];
int cot;
bool prime(int n)
{
FOR(i,2,sqrt(n)+2)
if(n%i==0)return 0;
return 1;
} void PA()
{
cot=0;
pa[cot++]=2;
pa[cot++]=3;
pa[cot++]=5;
pa[cot++]=7;
FOR(i,1,10000)
{
int num[5];
int len=0;
int m=i;
while(m)
{
int tmp=m%10;
num[len++]=tmp;
m/=10;
}
int ans=i;
if(len>1)
{
FOR(r,1,len)
ans=ans*10+num[r];
if(prime(ans))
pa[cot++]=ans;
}
ans=i;
FOR(r,0,len)
ans=ans*10+num[r];
if(prime(ans))
pa[cot++]=ans;
}
} int main()
{
PA();
int a,b;
while(~sf("%d%d",&a,&b))
{
FOR(i,0,cot)
if(pa[i]>=a&&pa[i]<=b)pf("%d\n",pa[i]);
pf("\n");
}
}
HDU 1431 素数回文的更多相关文章
- F题 hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 素数回文 Time Limit: 2000/1000 MS (Java/Others) M ...
- 题解报告:hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 Problem Description xiaoou33对既是素数又是回文的数特别感兴趣.比如说 ...
- hdu 1431 素数回文(暴力打表,埃托色尼筛法)
这题开始想时,感觉给的范围5 <= a < b <= 100,000,000太大,开数组肯定爆内存,而且100000000也不敢循环,不超时你打我,反正我是不敢循环. 这题肯定得打表 ...
- HDU 1431 素数回文 离线打表
题目描述:给定一个区间,将这个区间里所有既是素数又是回文数的数输出来. 题目分析:这题的这个数据范围比较大,达到了10^8级别,而且输入的数据有多组,又因为判断一个数是否是回文数貌似只有暴力判断,时间 ...
- 素数回文(hdu1431)
素数回文 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 素数回文(dfs,有bug)
素数回文 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 4N - 素数回文
xiaoou33对既是素数又是回文的数特别感兴趣.比如说151既是素数又是个回文.现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数.(5 &l ...
- 12--c完数/最大公约数/最小公倍数/素数/回文数
完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报 分类: C/C++(60) 哈尔滨工业大学(8) 版权声明:本文为博主原创文章 ...
- HDU 5651 计算回文串个数问题(有重复的全排列、乘法逆元、费马小定理)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=5651 很容易看出来的是,如果一个字符串中,多于一个字母出现奇数次,则该字符串无法形成回文串,因为不能删减 ...
随机推荐
- set-matrix-zeroes当元素为0则设矩阵内行与列均为0
题目描述 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. c ...
- docker 实战---多台物理主机的联网,容器桥接到物理网络拓扑图(四)
非常多朋友说上一篇中对网络的描写叙述不够清楚,感谢热心的群友彩笔程序猿: 提供了他理解的图,在这里贴一下: 我自己也补画了一副多台机器互联的图,欢迎大家留言讨论: 主机A和主机B的网卡一都连着物理交换 ...
- 使用VTK与Python实现机械臂三维模型可视化
三维可视化系统的建立依赖于三维图形平台, 如 OpenGL.VTK.OGRE.OSG等, 传统的方法多采用OpenGL进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函数, 从而造成 ...
- SQL Manager Lite可视化工具部分中英对照
.Refresh //刷新表数据 .compile,//提交数据. .connect to host //链接到服务器 .disconnect from all databases //断开链接 . ...
- python 测试时一个str是不是字符串
# -*- coding: cp936 -*- #python 27 #xiaodeng #测试时一个str是不是字符串 def isAstring(obj): ''' 测试一个str是不是字符串 b ...
- 程序员必备!Sonar代码质量管理工具
Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. Sonar 概述 Sonar 是一个用于代码质量管理的开放平台.通过插 ...
- javascript判断是否按回车键
function enterHandler(event){ var keyCode = event.keyCode ? event.keyCode : event.which ? event.whic ...
- 转:Ogre的八叉树场景管理器OctreeSceneManager
上面是我绘制的一张图. 关于八叉树场景管理器主要需要关注两个类,其一是松散八叉树的数据结构Ogre::Octree,其二是八叉树场景管理器Ogre::OctreeSceneManager. 下面摘录图 ...
- IDEA安装使用 VisualVM 及VisualVM 远程监视
1. VisualVM是什么 按照VisualVM官网(http://visualvm.github.io/)上的介绍,VisualVM是一个集成命令行JDK工具和轻量级分析功能的可视化工具.专为开发 ...
- 阿里云ECS 利用快照创建磁盘实现无损扩容数据盘
在扩容数据盘时,若遇到磁盘原因导致无法无损的扩容时,可以临时购买一块独立云磁盘来存放数据,然后将数据盘彻底格式化来解决,以下是操作步骤: 1. 首先基于当前数据盘创建一个快照,备份数据,同时可以利用 ...