1、洛谷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%的数据 1<=n<=1000 1<=m<=1000000 -10^9<=l<=r<=10^9 1<=t<=1000000

 /*筛法求素数
用到二分,否则可能严重超时!!*/ #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int x,y,n,m;
int num;// 质数的个数
int a[];//储存质数
bool f[]={};//判断是否为质数
void solve(int x,int y)//二分解决
{
int l=,r=,left=,right=num;
while (left<=right)//二分查找 1到所要求的区间左端点的质数的个数
{
int mid=(left+right)>>;//最终得到mid值为1到x的质数个数
if (a[mid]>=x) //mid指向的质数大于左端点,向左二分
{
l=mid;//
right=mid-;
}
else
left=mid+;
}
//从1到右端点的质数个数
if (y>=a[num])//y大于最大的质数,1到y的质数个数为该范围的质数个数
r=num;
else
{
left=;
right=num;
while (left<=right)
{
int mid=(left+right)>>;
if (a[mid]>y)
{
r=mid-;
right=mid-;
}
else
left=mid+;
}
}
printf("%d\n",r-l+);
}
void chuli()
{
for(int i=;i<=m;i++)
if(f[i]==)//是素数
{
a[++num]=i;//储存
int x=;
while(x*i<=m)
{
f[x*i]=true;//筛掉倍数
x++;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
chuli();
for(int i=;i<=n;i++)
{
scanf("%d%d",&x,&y);
if(x<||y>m)printf("Crossing the line\n");
else solve(x,y);
} return ;
}

洛谷P1865 A % B Problem的更多相关文章

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

    题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对 ...

  2. 洛谷 P1865 A % B Problem

    题目戳 题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格 ...

  3. 洛谷 P1865 A % B Problem[筛素数/前缀和思想/区间质数个数]

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  4. 洛谷 P1865 A % B Problem(求区间质数个数)

    题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对 ...

  5. 洛谷1001 A+B Problem

    洛谷1001 A+B Problem 本题地址:http://www.luogu.org/problem/show?pid=1001 题目描述 输入两个整数a,b,输出它们的和(|a|,|b|< ...

  6. 洛谷1303 A*B Problem 解题报告

    洛谷1303 A*B Problem 本题地址:http://www.luogu.org/problem/show?pid=1303 题目描述 求两数的积. 输入输出格式 输入格式: 两个数 输出格式 ...

  7. 洛谷1601 A+B Problem(高精) 解题报告

    洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...

  8. 洛谷P1919 A*B problem 快速傅里叶变换模板 [FFT]

    题目传送门 A*B problem 题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数 ...

  9. 洛谷 P1001 A+B Problem

    题目描述 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9). 注意 1.pascal使用integer会爆掉哦! 2.有负数哦! 3.c/c++的main函数必须是int类型,而且 ...

随机推荐

  1. iterator方法和for方法 遍历数据库user表结果集ResultSet

    首先,把连接数据库的语句做成工具类,因为会一直用到这几句 代码如下: package com.swift.jdbc; import java.sql.Connection; import java.s ...

  2. JS设置组合快捷键

    为提升用户体验,想要在web页面中通过组合快捷键调出用户帮助页面,具体实现思路是监听keyup事件,在相应的处理函数中进行逻辑编写,代码如下 $(document).keyup(function (e ...

  3. (38)zabbix中配置snmp监控

    1.首先按照“snmp监控快速配置”文本文档在被监控的主机上安装.配置及启动snmp服务, 具体内容如下: 1).安装snmp yum install net-snmp* -y cp -a /etc/ ...

  4. python其他

    其他 1.迭代器 定义:帮助对某类对象(str/list/tuple/dict/set)中的元素进行逐一获取 可迭代对象:内部具有__iter__()方法且返回一个迭代地址.(可被for循环就是可迭代 ...

  5. Python中怎么进行单元测试

    既然是测试,那我们得有被测试的代码,我们先定义一个简单的函数,这个函数的功能就是接收一个姓名,并返回一句问候语句. say_hello_function.py def hello_name(name) ...

  6. 启动myeclipse出现JVM terminated. Exit code=-1

    在启动myeclipse时出现如图: 解决方法 第一种: myeclipse.ini中内存设置过大导致 修改: 256m改成128m,512m 改为 256m. 第二种:在myeclipse.ini ...

  7. debian 中的jdk

    1 openjdk 2 debian安装java的脚本 3 下载bin自己编译

  8. PYDay5- 数据类型set、三元运算、函数

    1.set set集合,是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object se ...

  9. 【LeetCode】Jewels and Stones(宝石与石头)

    这道题是LeetCode里的第771道题. 题目要求: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝 ...

  10. Convolution Fundamental I

    Convolution Fundamental I Foundations of CNNs Learning to implement the foundational layers of CNN's ...