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 ;
}

最新文章

  1. Scrum Meeting 12-20151218
  2. julia的优化?
  3. eclipse- Web-app verson=2.5 调整将Dynamic Web Module3.0降为2.5
  4. iOS 学习 - 14.本地联系人
  5. POJ1062昂贵的聘礼[最短路建模]
  6. Webform——中国省市三级联动以及IsPostBack
  7. Semantic UI 中文参考手册
  8. js 函数声明方式以及javascript的历史
  9. Oracle 查询字段在什么表
  10. 初识RabbitMQ系列之一:简单介绍
  11. Form -------- 使用
  12. 彻底明确怎样设置minSdkVersion和targetSdkVersion
  13. Django2.1.3 smtp 邮件 553报警
  14. mysql数据库中指定值在所有表中所有字段中的替换
  15. ZJOI 2015 幻想乡战略游戏(动态点分治)
  16. 【CF889E】Mod Mod Mod DP
  17. Windows 下使用 GCC
  18. scala可变长度参数(转)
  19. beeshell —— 开源的 React Native 组件库
  20. [原创]-[WEB]代码高亮工具

热门文章

  1. 单步调试理解webpack里通过require加载nodejs原生模块实现原理
  2. *389. Find the Difference (string + map(26)) read problems carefully
  3. jQuery获取Select选择的Text和Value[转载]
  4. 线程属性总结 线程的api属性
  5. 过河问题(POJ1700)
  6. 【P1330】 封锁阳光大学
  7. CentOS中配置php环境
  8. HTTP的DELETE方法Body传递参数问题解决
  9. 修改SecureCRT默认会话字符集
  10. MySql客户端远程连接MySql服务器