题目背景
题目名称是吸引你点进来的 实际上该题还是很水的 题目描述
区间质数个数 输入输出格式
输入格式:
一行两个整数 询问次数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%的数据 1<=n<=1000 1<=m<=1000000 -10^9<=l<=r<=10^9 1<=t<=1000000

这道题主要考查的是有关素数的知识,基本方法可以去这里了解一下。
好的接下来说解法。
粗看数据范围:
???为什么还要在负数里面找质数
一看样例再读题目
Crossing the line不就是来处理这种情况的吗?直接打上if(l<1||r>m)cout<<"Crossing the line"<<endl;
我看到这道题的第一思路就是用上面那篇蓝色字点进去的博客里面的第三种方法(建议看一下),毕竟这个方法的时间复杂度是我在里面列举的三种方法中特别快的了!
然后我就打了下来去luogu上提交…

很明显,虽然第三种方法已经有了很快的速度,但是在特别构造的数据下,这种速度还是不够的!
那么,我们应该进行思考:
既然这道题目的查找次数最高可以达到1k,那么我们为什么不通过打标记和记录数字来快速得出答案呢?
在我的代码中,我用ans[i]来表示从1-i的范围内有多少个质数,那么代码实现就很简单了。
具体代码就贴在下面,有需要的自取:

#include<bits/stdc++.h>
using namespace std;
int p[1000010],ans[1000010];
bool ip[1000010];
int tot=0;
int main()
{
int n,m,l,r;
cin>>n>>m;
memset(ip,true,sizeof(ip));
ip[0]=0;ip[1]=0;ans[1]=0;
for(int i=2;i<=m;i++)
{
ans[i]=ans[i-1];
if(ip[i])
{
p[++tot]=i;
ans[i]=tot;
}
for(int j=1;j<=tot&&i*p[j]<=m;++j)
{
ip[i*p[j]]=false;
if(i%p[j]==0)break;
}
}
for(int i=1;i<=n;i++)
{
cin>>l>>r;
if(l<1||r>m) cout<<"Crossing the line"<<endl;
else cout<<ans[r]-ans[l-1]<<endl;
}
return 0;
}

ov.

【题解】【A % B Problem(P1865)】-C++的更多相关文章

  1. 【题解】Tree-String Problem Codeforces 291E AC自动机

    Prelude 传送到Codeforces:(/ω\)--- (/ω•\) Solution 很水的一道题. 对查询的串建出来AC自动机,然后树上随便跑跑就行了. 为什么要写这篇题解呢? 我第一眼看到 ...

  2. P1832题解 A+B Problem(再升级)

    万能的打表 既然说到素数,必须先打素数表筛出素数, 每个素数可以无限取,这就是完全背包了. 这次打个质数表: bool b[1001]={1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1 ...

  3. 题解:T103342 Problem A. 最近公共祖先

    题目链接 题目大意 求每个点对的lca深度的和 以每一层分析,得出通式 由于1e9的数据范围要化简表达式得到O(能过) 瞎搞后就是2^(2n+2)-(4n+2)*2^n-2 code: #includ ...

  4. 暑假训练round 3 题解

    今天做题运气出奇的好,除了几处小错误调试之后忘记改掉了……最后还AK了……虽然题目不难,学长也说是福利局,但是对个人的鼓励作用还是挺大的……至此暑假训练就结束了,也算没有遗憾……. 题解如下: Pro ...

  5. [Luogu 1919]【模板】A*B Problem升级版(FFT快速傅里叶)

    Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. Output 输出 ...

  6. HDU 5296 Annoying problem LCA+树状数组

    题解链接 Annoying problem Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  7. Codeforces Round #198 (Div. 2)C,D题解

    接着是C,D的题解 C. Tourist Problem Iahub is a big fan of tourists. He wants to become a tourist himself, s ...

  8. CF 407B Long Path[观察性质 DP]

    B. Long Path time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  9. Codeforces Round #206 div1 C

    CF的专业题解 : The problem was to find greatest d, such that ai ≥ d,  ai mod d ≤ k holds for each i. Let ...

随机推荐

  1. Win10《芒果TV》商店版双十一独家大礼,每日前100名用户免费领取7天VIP

    为答谢大家对Win10<芒果TV>商店版一年以来一如既往的支持,2016年11月1日-11月30日期间,每天登录<芒果TV>UWP版(最新版本v3.1.3)的前100位用户可领 ...

  2. flume本地调试

    本机idea远程调试flume:https://blog.csdn.net/u012373815/article/details/60601118 遇到 [root@hadoop02 bin]# ./ ...

  3. VC++的Unicode编程

    本文来自:http://tech.ddvip.com/2007-03/117395585321221.html 一.什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范 ...

  4. ASP.NET MVC3在Visual Studio 2010中的变化

    在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化 1.ASP.NET MVC3必要的运行环境为.NET 4.0 (想在3.5用MVC3,没门!) 2.默认MVC3模板项目 ...

  5. pytorch实现yolov3(3) 实现forward

    之前的文章里https://www.cnblogs.com/sdu20112013/p/11099244.html实现了网络的各个layer. 本篇来实现网络的forward的过程. 定义网络 cla ...

  6. IDEA的参数配置

    配置默认JDK 2.默认Project是没有JDK的,需要手动添加,然后才会有选项 关闭Intellij IDEA自动更新 文件编码设置 改快捷键,模板,注释,自动导包,创建web项目卡顿参数修改,代 ...

  7. 计算广告之CTR预测--PNN模型

    论文为:Product-based Neural Networks for User Response Prediction 1.原理 给大家举例一个直观的场景:比如现在有一个凤凰网站,网站上面有一个 ...

  8. Redis Ubuntu 安装

    1.使用 root 用户登录 Ubuntu  2. wget http://download.redis.io/releases/redis-5.0.3.tar.gz 下载最新的稳定版本到 redis ...

  9. 跟我学SpringCloud | 第五篇:熔断监控Hystrix Dashboard和Turbine

    SpringCloud系列教程 | 第五篇:熔断监控Hystrix Dashboard和Turbine Springboot: 2.1.6.RELEASE SpringCloud: Greenwich ...

  10. Flink中的状态与容错

    1.概述 Flink支持有状态计算,根据支持得不同状态类型,分别有Keyed State和Operator State.针对状态数据得持久化,Flink提供了Checkpoint机制处理:针对状态数据 ...