T-primes #142DIV2

菜鸡刷cf 专栏收录该内容
2 篇文章 0 订阅

第一次写博客(之前写过一篇自己给删了,本来是想展示python对缩进的严格要求以至于连注释都要正确缩进,但是复制过来自动给我改正确了,后来发现这一点后就给删掉了),还是记录一下我刷cf的历程吧……小白一只,写给自己看就好。
这道题本来我是用枚举判断…然后无论怎么改都会爆掉,于是看了题解,开始学习质数筛……(本来还以为会是道简单题的)
根据现学的素数定理(在n以内随机选一个数,它是质数的概率约为 1lnn ),我们大约需要一个95000大小的数组来存最后得到的 1012 次方以内的平方数。(最后我生成出来只有78498个,手动做了调整)
然后使用质数筛(利用全局数组vis[]记录是否是质数,对于每个质数将它的倍数们标记为和数),最后得到了含有小于 1012 的所有素数平方的数组,就可以在读入数据之后去判断它到底在不在那个数组里(使用折半查找法 减少运行时间)
代码太丑,不贴了…记一下这些方法什么的……昨晚打比赛有道题想复杂了,后来二测还被刷了……今天下午再来一次…向教室移动……

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

anlideer

四季奶青永远滴神~

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值