【luogu P1865 A % B Problem】题解

题目链接:https://www.luogu.org/problemnew/show/P1865

其实就是埃拉托色尼筛素数模板...

好像每个数暴力枚举到sqrt()也可以...就算当我无聊练手罢

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6 const int maxn = 1000000 + 10;
 7 bool prime[maxn];
 8 int n, m, left, right, sq, tot = 0;
 9 int main()
10 {
11     memset(prime,0,sizeof(prime));
12     scanf("%d%d", &n, &m);
13
14     sq = sqrt(m);
15     prime[1] = 1;
16     for(int i = 2; i <= sq; i++)
17         if(prime[i] == 0)
18         {
19             for(int j = i*i; j <= m; j+=i)
20             prime[j] = 1;
21         }
22
23     for(int i = 1; i <= n; i++)
24     {
25         scanf("%d%d", &left, &right);
26         if(left > m || right > m || left <= 0 || right <= 0)
27         {
28             printf("Crossing the line\n");
29             continue;
30         }
31         else
32         {
33             for(int j = left; j <= right; j++)
34             {
35                 if(prime[j] == 0)
36                 tot++;
37             }
38             printf("%d\n",tot);
39             tot = 0;
40         }
41
42     }
43     return 0;
44 }

原文地址:https://www.cnblogs.com/MisakaAzusa/p/8476153.html

时间: 2024-10-13 10:24:52

【luogu P1865 A % B Problem】题解的相关文章

HDU 1016 Prime Ring Problem 题解

Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime. Note: the number of first circle should always be 1

洛谷 P1865 A % B Problem(简单区间素数) 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1865 题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Crossing the line 输入输出样例 输入样例#1: 2 5 1 3

POJ2826:An Easy Problem?!——题解(配特殊情况图)

http://poj.org/problem?id=2826 题目大意:给两条线,让它接竖直下的雨,问其能装多少横截面积的雨. ———————————————————————————— 水题,看题目即可知道. 但是细节是真的多……不过好在两次AC应该没算被坑的很惨(全程没查题解). 推荐交之前看一下讨论版的数据,方便一次AC(我第一次就是作死直接交了结果我自己都想好的情况忘了写了……) 相信看到这篇题解的人都看过题了,那么先说细节: 1.C++提交(G++不知道为什么WA了……) 2.精度 3.

【数论线性筛】洛谷P1865 A%B problem

题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r?[1,m]输出 Crossing the line 输入输出样例 输入样例#1: 2 5 1 3 2 6 输出样例#1: 2 Crossing the line 说明 [数据范围和约定] 对于20%的数据 1<=n<=10 1<=m<=10 对于100

【luogu P1455 搭配购买】 题解

题目链接:https://www.luogu.org/problemnew/show/P1455 一句话题目做法:并查集合并+01背包 启示:要每次再find一遍.路径压缩会快.因为合并的时候如果是1连3,3连2,4连2,最后也不能保证一步就能连到fa上去. 结果会是fa[2] = fa[3] = fa[4] = 2. fa[1] = 3. 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm>

【luogu P2455 [SDOI2006]线性方程组】 题解

题目链接:https://www.luogu.org/problemnew/show/P2455 嗯...在消元过程中不要直接拿矩阵元素自己消,会把自己消成0. 1 #include <algorithm> 2 #include <cstdio> 3 #include <cmath> 4 #include <iostream> 5 using namespace std; 6 const int maxn = 200; 7 const double eps

【luogu P4568 [JLOI2011]飞行路线】 题解

题目链接:https://www.luogu.org/problemnew/show/P4568 卡了一晚上,算是分层图最短路的模板.注意卡SPFA,所以我写了个SLF优化. 同时 AC400祭!~ #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define ri register using name

【luogu P1262 间谍网络】 题解

题目链接:https://www.luogu.org/problemnew/show/P1262 注意: 1.缩点时计算出入度是在缩完点的图上用color计算.不要在原来的点上计算. 2.枚举出入度时是在缩完点的图上计算.枚举范围到num. #include <stack> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using nam

【luogu P1456 Monkey King】 题解

题目链接:https://www.luogu.org/problemnew/show/P1456 左偏树并查集不加路径压缩吧... #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 100000 + 10; struct Left_Tree{ int val, fa, son[2