USACO Section1.5 Prime Palindromes 解题报告
pprime解题报告 —— icedream61 博客园(转载请注明出处)
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
求a到b之间的所有回文素数(即又是素数又是回文数的数)。
【数据范围】
5<=a,b<=100,000,000
【输入样例】
5 500
【输出样例】
5
7
11
101
131
151
181
191
313
353
373
383
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
筛法求素数+回文数判断。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
第一个点就卡住了,运行时错误。
题目开始出现大数据了,以后要在交之前测试一下边界情况。
本机测试没问题,经过多次OJ上测试,得出是定义数组的大小问题。数据给出b的最大值的是100,000,000,但若我bool数组建这么大,会爆运行时错误。
我的解决办法是,实测满足条件的最大数maxd=9,989,899,于是数组范围定义为d[0~maxd],AC了……
本题问题在于,我对USACO不甚了解。我查了USACO的内存限制,程序所用内存不能超过16M。
maxd=9,989,899时,所占内存约为10/8=1.25M,肯定没问题。
maxd=100,000,000时,所占内存约为100/8=12.5M,应该不超内存的;而USACO上面显示,我的代码运行0.000s时,使用了312KB的内存,这个看来自然是不可信……不知道为什么会超内存,好奇怪,这是为什么?在此向大家请教,希望知道的同学不吝赐教,多谢!
------------------------------------------------------------------------------------------------------------------------------------------------
【代码】
/*
ID: icedrea1
PROB: pprime
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; const int maxd = ;
//const int maxd = 100000000; int a,b;
bool d[+maxd]; int bit[],l;
bool isPal(int x)
{
l=;
while(x) { bit[++l]=x%; x/=; }
for(int i=;i<=(l>>);++i)
if(bit[i]!=bit[l+-i]) return false;
return true;
} int main()
{
ifstream in("pprime.in");
ofstream out("pprime.out"); d[]=d[]=true;
for(int i=;i<=;++i)
if(!d[i])
for(int j=i+i;j<=maxd;j+=i) d[j]=true; in>>a>>b; for(int i=a;i<=b;++i)
if(i<=maxd && !d[i] && isPal(i)) out<<i<<endl; in.close();
out.close();
return ;
}
最新文章
- Scrum Meeting 12-20151218
- julia的优化?
- eclipse- Web-app verson=2.5 调整将Dynamic Web Module3.0降为2.5
- iOS 学习 - 14.本地联系人
- POJ1062昂贵的聘礼[最短路建模]
- Webform——中国省市三级联动以及IsPostBack
- Semantic UI 中文参考手册
- js 函数声明方式以及javascript的历史
- Oracle 查询字段在什么表
- 初识RabbitMQ系列之一:简单介绍
- Form -------- 使用
- 彻底明确怎样设置minSdkVersion和targetSdkVersion
- Django2.1.3 smtp 邮件 553报警
- mysql数据库中指定值在所有表中所有字段中的替换
- ZJOI 2015 幻想乡战略游戏(动态点分治)
- 【CF889E】Mod Mod Mod DP
- Windows 下使用 GCC
- scala可变长度参数(转)
- beeshell —— 开源的 React Native 组件库
- [原创]-[WEB]代码高亮工具
热门文章
- 单步调试理解webpack里通过require加载nodejs原生模块实现原理
- *389. Find the Difference (string + map(26)) read problems carefully
- jQuery获取Select选择的Text和Value[转载]
- 线程属性总结 线程的api属性
- 过河问题(POJ1700)
- 【P1330】 封锁阳光大学
- CentOS中配置php环境
- HTTP的DELETE方法Body传递参数问题解决
- 修改SecureCRT默认会话字符集
- MySql客户端远程连接MySql服务器