首页 > 其他分享 >测试

测试

时间:2023-10-25 20:14:35浏览次数:24  
标签:输出 题目 样例 素数 测试 格式 输入

目录

题目翻译

【题目描述】
你决定用素数定理来做一个调查. 众所周知, 素数又被称为质数,其含义就是除了数字一和本身之外不能被其他任何的数字除尽.

现在给定一个正整数序列 $a,a+1,\cdots,b$ $(a \le b)$, 请找出一个最小值 $l$, 使其满足对于任意一个长度为 $l$ 的子串, 都包含 $k$ 个质数.

找到并输出符合要求的最小值 $l$, 如果不存在符合要求的长度 $l$, 则输出 $-1$.

【输入格式】

输入一行, 包含三个用空格隔开的整数 $a,b,k$ ($1 \le a,b,k \le 10^{6}; a \le b$)

【输出格式】
输出一行, 为符合要求的最小值 $l$, 若不存在, 输出 $-1$.

题目描述

You've decided to carry out a survey in the theory of prime numbers. Let us remind you that a prime number is a positive integer that has exactly two distinct positive integer divisors.

Consider positive integers $a$ , $a+1$ , $...$ , $b$ $(a<=b)$ . You want to find the minimum integer $l$ $(1<=l<=b-a+1)$ such that for any integer $x$ $(a<=x<=b-l+1)$ among $l$ integers $x$ , $x+1$ , $...$ , $x+l-1$ there are at least $k$ prime numbers.

Find and print the required minimum $l$ . If no value $l$ meets the described limitations, print -1.

输入格式

A single line contains three space-separated integers $a,b,k$ ( $1<=a,b,k<=10^{6}; a<=b$ ).

输出格式

In a single line print a single integer — the required minimum $l$ . If there's no solution, print -1.

样例 #1

样例输入 #1

2 4 2

样例输出 #1

3

样例 #2

样例输入 #2

6 13 1

样例输出 #2

4

样例 #3

样例输入 #3

1 4 3

样例输出 #3

-1

题目简化

求一个区间内,任意长度为 $l$ 的子串中都包含 $k$ 个质数的最小 $l$。

题目思路

初始化一个数组存储从 $2$ 开始的所有素数。初始化后,这个数组中所有值都是 true,表示对应的数是素数。

使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出所有小于 $MAX$ 的素数。这个算法的主要思想是,如果一个数不是素数,那么它必定有一个因子小于或等于其平方根。因此,我们只需要检查到每个数的平方根即可。

在主循环中,读取三个输入:$a$, $b$ 和 $k$。然后,创建一个队列 $q$ 并把 $a-1$ 放入队列。

接下来,进行一系列操作来找出在区间 $\text [a, b]$ 中,长度为 $k$ 的所有素数子序列。如果存在这样的子序列,那么就更新 $res$ 的值。

如果 $q$ 的头部元素是 $a-1$,那么就输出 $\texttt -\texttt 1$,否则输出 $res$。

AC代码

#include <bits/stdc++.h>
using namespace std;
#define li        long long int
#define rep(i,to) for(li i=0;i<((li)(to));++i)
#define pb        push_back
#define sz(v)     ((li)(v).size())
#define bit(n)    (1ll<<(li)(n))
#define all(vec)  (vec).begin(),(vec).end()
#define each(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)
#define MP        make_pair
#define F         first
#define S         second


#define MAX 1000500
li is_prime[MAX];

int main()
{
    rep(i, MAX)if(2 <= i) is_prime[i] = true;
    for(li i = 2; i * i < MAX; i++){
        if(!is_prime[i]) continue;
        for(li j = i * i; j < MAX; j += i) is_prime[j] = false;
    }
    li a, b, k;
    cin >> a >> b >> k;
    queue<li> q;
    li res = -1;
    q.push(a - 1);
    for(li pos = a; pos <= b; pos++){
        if(is_prime[pos]) q.push(pos);
        while(k < sz(q)) q.pop();
        if(sz(q) == k) res = max(res, pos - q.front() + 1);
    }
    if(q.front() == a - 1) cout << -1 << endl;
    else cout << res << endl;
} 

标签:输出,题目,样例,素数,测试,格式,输入
From: https://www.cnblogs.com/fire-wolf/p/17788011.html

相关文章

  • ORB-SLAM3测试
    (一)环境搭建教程1、Ubuntu18.04从零开始搭建orbslam3及数据集测试:https://blog.csdn.net/Skether/article/details/131320852。2、https://mp.weixin.qq.com/s?__biz=MzU1NjEwMTY0Mw==&mid=2247550960&idx=1&sn=eaecbe5940ed231cdae6b00db985de4e&chksm=fbc87e94ccbff7821fec2d......
  • 二、深度测试(Z Test)
    1.是什么①从渲染管线出发②书面上理解所谓深度测试,就是针对当前对象在屏幕上(更准确的说是framebuffer)对应的像素点,讲对象自身的深度值与当前该像素点缓存的深度值进行比较,如果通过了,本对象再改像素点才会将颜色写入颜色缓冲区,否则不会写入颜色缓冲区③逻辑上理解④从发展上理解2.......
  • 3.1 模板测试与深度测试(Stencil Test & Z Test)
    一、模板测试(StencilTest)模板测试可以实现的一些效果图1.是什么①从渲染管线出发:模板测试是在逐片源操作阶段,透明测试之后,深度测试之前的位置。②从书面概念上理解说到模板测试,就要先说道模板缓冲区。模板缓冲区与颜色缓冲区和深度缓冲区类似,模板缓冲区可以为屏幕上的每个像素点保......
  • 一篇了解springboot3请求参数种类及接口测试
    SpringBoot3数据请求:原始数据请求://原始方式@RequestMapping("/simpleParam")publicStringsimpleParam(HttpServletRequestrequest){//获取请求参数Stringname=request.getParameter("name");Stringage=request.getParame......
  • 接口自动化--postman(7)批量运行测试用例,Postman参数化和数据驱动
    批量运行测试用例Postman参数化和数据驱动参数化:把数据用参数来代替,从而进行测试的过程。参数化是实现数据驱动测试的前置技术数据驱动:把测试数据和测试脚本分离,用数据来驱动测试用例的执行。简单的说,就是一条数据对应一条测试用例。  Postman实现数据驱动--支持的......
  • 软件测试|pycharm关联GitHub的详细步骤
    简介GitHub是全球最大的开源代码托管平台之一,而PyCharm是一款强大的Python集成开发环境。将两者结合使用,可以提高团队协作和代码管理的效率。本文将详细介绍如何在PyCharm中管理GitHub账号,包括如何设置GitHub账号、创建新仓库、克隆现有仓库、提交和推送代码等。环境准......
  • 软件测试|Python数据可视化神器——pyecharts教程(十)
    使用pyecharts绘制漏斗图简介漏斗图(FunnelChart)是一种用于可视化数据流程或转化率的图表类型。它通常由一系列阶段组成,每个阶段都有一个名称和一个值,表示在该阶段的转化量或数据流程的进展情况。漏斗图的名称来源于其外观,类似于实际的漏斗形状,它的顶部较宽,底部较窄,符合数据逐渐减......
  • 软件兼容性测试对软件产品起到什么作用?CMA、CNAS软件测评中心分享
    软件兼容性测试是指检查软件之间能否正确地进行交互和共享信息。随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重要。软件兼容性测试工作的目标是保证软件按照用户期望的方式进行交互。1、提高软件......
  • 软件系统测试和验收测试有什么联系和区别?湖南软件测评公司推荐
    卓码软件测评作为一家专业的软件测试服务提供商,我们深知软件系统测试和验收测试在软件开发过程中的重要性。本文将从多个角度出发,详细描述这两个测试的含义、联系和区别。一、什么是软件系统测试?软件系统测试是指对整个软件系统进行全面、全局的功能和性能验证的过程......
  • Python - 单元测试
    总结 一、如何进行单元测试注意点:importunittest需要创建一个类TestSort,继承类‘unittest.TestCase’然后,在这个类TestSort中定义相应的测试函数test_sort(),进行测试。注意,测试函数要以‘test’开头而测试函数的内部,通常使用assertEqual()、assertTrue()、assertFalse......