zoukankan
html css js c++ java
Codeforces 385C Bear and Prime Numbers(素数预处理)
[Codeforces 385C Bear and Prime Numbers](http://codeforces.com/problemset/problem/385/C) 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1)。 但是,
我在统计数组中元素出现个数时使用了map,以至于后面做前缀和的累加时,每次都要对map进行查询,以至于TLE。
而自己一直没有发现,以为是欧拉筛对于这道题还不够优,于是上网搜题解,发现别人的做法几乎一样,但是却能跑过,挣扎了许久才想起是map的原因。
map的内部实现是一颗红黑树,每次查询的复杂度为O(logN)
,在本来时间就不富裕的情况下,导致了超时。改用数组来统计后,顺利AC。做题时,在空间允许的情况下,如果每次可以确定访问的key,还是尽量用数组来做整数间的映射吧(如果每次要遍历一遍以查询,则选择map)。因为这道题纠结了许久,于是做个记录。 附上AC代码: ```C++ #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; typedef long long ll; typedef pair
P; typedef map
M; typedef vector
V; typedef queue
Q; const int maxn=10000000+5; int cnt[maxn]; bool is[maxn]; int prime[maxn/2]; ll sum[maxn]; void init(int mx) { int i,j,count=0; for (i=2;i<=mx;++i) { if (!is[i]) { prime[count++]=i; } for (j=0;j
>n; for (i=0;i
>m; while (m--) { int l,r; scanf("%d%d",&l,&r); l=min(maxn,l); r=min(maxn,r); printf("%d ",sum[r]-sum[l-1]); } return 0; } ```
查看全文
相关阅读:
WPF概述(硬件加速及分辨率无关性)
创建自己的Code Snippet(代码模板)
[LeetCode]46. Restore IP Addresses复原IP地址
[LeetCode]45. Reverse Words in a String按单词翻转字符串
[LeetCode]44. Implement strStr()实现strStr()函数
[LeetCode]43. Integer to Roman整数转罗马数字
[LeetCode]42. Roman to Integer罗马数字转整数
[LeetCode]41. String to Integer(atoi)字符串转整数
[LeetCode]40. Valid Palinadrome有效回文串
[LeetCode]39. Longest Valid Parentheses最长有效括号对
原文地址:https://www.cnblogs.com/orangee/p/8977964.html
最新文章
正则持续更新 (亲测可用)
函数节流
vue cli搭建的vue项目 不小心开了eslint 一直报黄色的警告
commonJS 和 ES6 模块化的不同
jQuery封装 写的的确不错 转载
js数组去重
解决一行多余文字隐藏拿...代替的问题
python 33 多进程(一)
python 32 操作系统与进程
python 31 升级版解决粘包现象
热门文章
python 30 基于TCP协议的socket通信
python 29 Socket
python 28 网络协议
python 27 异常处理
python 26 反射
python 25 类的成员
python 24 封装、多态
WPF添加样式字典Style
Caliburn.Micro(MVVM框架)
MahApps.Metro扁平化UI控件库(可修改主题色等)
Copyright © 2011-2022 走看看