zoukankan      html  css  js  c++  java
  • 【数论线性筛】洛谷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

    题解

    很简单的线性筛裸题

    就是要注意l必须大于0,r必须小于等于m

    还有要用sum优化

    代码如下:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    
    int n,m,l,r,sum[10000004];
    bool a[10050000];
    
    int main()
    {
        scanf("%d%d",&m,&n);
        a[1]=1;
        for(int i=2;i*i<=n;++i)
        {
            if(a[i])continue;
            for(int j=i;i*j<=n;++j)
                a[i*j]=1;
        }
        for(int i=1;i<=n;++i)
            sum[i]=sum[i-1]+1-a[i];
        for(int i=1;i<=m;++i)
        {
            scanf("%d%d",&l,&r);
            if(l<=0||r>n){
                printf("Crossing the line
    ");
                continue;
            }
            printf("%d
    ",sum[r]-sum[l-1]);
        }
    }
  • 相关阅读:
    自我学习笔记08
    自我学习笔记07
    自我学习笔记06
    自我学习笔记05
    自我学习笔记04
    自我学习笔记03
    自我学习笔记02
    WebApi HttpUtils
    Android 正则表达式,Pattern,Matcher基本使用
    Andriod项目结构
  • 原文地址:https://www.cnblogs.com/rir1715/p/6847735.html
Copyright © 2011-2022 走看看