题目背景
题目名称是吸引你点进来的 实际上该题还是很水的 题目描述
区间质数个数 输入输出格式
输入格式:
一行两个整数 询问次数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. GIS基础软件及操作(六)

    原文 GIS基础软件及操作(六) 练习六.空间分析的应用 1.加深对缓冲区分析基本原理.方法的认识:2.熟练掌握距离制图创建缓冲区技术方法.3.掌握利用缓冲区分析方法解决地学空间分析问题的能力. 1. ...

  2. Qt+QZXing编写识别二维码的程序

    本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + ...

  3. 插件化一(android)

    插件化设计概述(android) 一.             模块划分 Basic模块包括:初始化接口.插件加载接口.插件更新接口和埋点接口. a)         初始化接口:完成一些必要的初始化 ...

  4. Python基础,day2

    程序练习 程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买 ...

  5. 【linux杂谈】跟随大牛进行一次服务器间通讯问题的排查

    发现应用记录日志内,出现网络访问延迟较大的情况. 此类问题较为常见,特别是之前参与辅助一个朋友项目运维的过程中,经常因为网络访问延迟较大,朋友认为是遭到了ddos攻击或者是cc攻击.网络访问延迟较大常 ...

  6. 24 margin的用法

    margin塌陷问题 当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: html结构: <div ...

  7. 全自动Landsat影像温度反演软件开发

    许久没有更新遥感类软件开发了,都有点生疏了,这一次我带来了一个老的算法,新的东西, 为什么这么说呢,我们知道Landat8.Landsat5等影像,单个影像去做温度反演,并没有什么太大的难度, 但是呢 ...

  8. CQRS之旅——旅程7(增加弹性和优化性能)

    旅程7:增加弹性和优化性能 到达旅程的终点:最后的任务. "你不能飞的像一只长着鹪鹩翅膀的老鹰那样."亨利·哈德逊 我们旅程的最后阶段的三个主要目标是使系统对故障更具弹性,提高UI ...

  9. Spark学习之路(十三)—— Spark Streaming 与流处理

    一.流处理 1.1 静态数据处理 在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中.应用程序根据需要查询数据或计算数据.这就是传统的静态数据处理架构.Hadoop采用HDFS进行数据 ...

  10. HBase 学习之路(九)——HBase容灾与备份

    一.前言 本文主要介绍Hbase常用的三种简单的容灾备份方案,即CopyTable.Export/Import.Snapshot.分别介绍如下: 二.CopyTable 2.1 简介 CopyTabl ...