`
hulunberbus
  • 浏览: 857283 次
文章分类
社区版块
存档分类
最新评论

hdu 1215 七夕节 筛选法 预处理

 
阅读更多

七夕节

Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15559Accepted Submission(s): 4546

数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.

Input
输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000).
Output
对于每组测试数据,请输出一个代表输入数据N的另一半的编号.
这道题 ,以前看到过一次, 还是两个月以前。 那时候还是用了最朴实的方法,用最2逼的方式郁闷着为什么过不了。呵呵。虽然那时候看着这题感觉会和 那个筛选法求素数有点 相似的感觉, 但那时候就只知道有筛选法神奇的名称,所以二逼的放过了这题。 今天是偶然看到此题的。到现在素数筛选是没一点问题了,自以为筛选法也不在话下。所以试了此题。
结果还是悲催的接受了TLE。。
下面是我TLE的代码。
其实这种算法我测试了最大的数据500000, 刷一下,很短的时间就算出来了,以为肯定不会TLE了。 但我忽视了 题目要求可能有500000组数据,而我的算法每个测试数据都得筛选一次、500000万组数据 。。。 哥顿时凌乱了。
这让我想到了 前两天刚看过的 预处理。虽然看过,但这是我第一次用预处理,怎么预处理还是让我想了很久。
最后当然还是AC了 。时间46ms ^ ^.
代码如下。




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics