首页 > 漂亮数
头像 houpingze
发表于 2021-08-28 10:16:14
我们首先处理出的所有素数,由于时间限制,空间限制很大,我们使用最优版的埃氏筛(时间复杂度),然后对于每一对素数处理,标记,注意他们两个乘起来如果超过了,就不要计算。具体实现见代码: // Problem: 漂亮数 // Contest: NowCoder // URL: https://ac.no 展开全文
头像 sunny_forever
发表于 2021-09-01 21:17:59
线性筛 + 前缀和 思路 先用线性筛把漂亮数给筛出来,然后利用前缀和的性质做到 O(1) 查询 Code #include <bits/stdc++.h> using namespace std; const int N = 1e8+10; int cnt; bool st[N]; 展开全文
头像 杨悦聪
发表于 2023-01-30 09:36:00
我觉得这题不就是求质数加前缀和嘛(好像其他大佬也是呢) 先欧拉筛一遍,欧拉筛时再记录一下漂亮数,做一下前缀和,最后再提取就行了! #include <bits/stdc++.h> using namespace std; int p[100000000],b[100000005],cn 展开全文
头像 Backl1ght
发表于 2021-08-28 01:30:23
H. 漂亮数 线性筛加打表. 如果处理出以内,每个数是否是漂亮数,然后做个前缀和,就可以回答询问了. 怎么处理呢? 线性筛的过程中标记一下就可以了. #include <bits/stdc++.h> using namespace std; #ifdef BACKLIGHT #inclu 展开全文
头像 lzlwdz
发表于 2024-05-01 09:27:09
写过素数的个数都知道想要快速找到l,r中间的符合条件的数,可利用筛法 #include <bits/stdc++.h> using namespace std; using ll=long long; const int N=1e8+10; int p[N],sum[N],cnt; 展开全文

等你来战

查看全部