首页 > 其他分享 >C. Quiz Master

C. Quiz Master

时间:2024-06-16 12:10:54浏览次数:10  
标签:cnt int 最大值 Quiz vis 最小值 Master ans

原题链接

题解

1.只需要求最大值和最小值之差,所以最大值和最小值之间放几个数放什么数都无所谓
2.既然只需要求最大值和最小值,那么我们可以把数组升序排序,然后求以每个值为最大值时,与最小值的差
3.按照升序排序后,最大值越大,最小值不会更小

code

#include<bits/stdc++.h>
using namespace std;
const int inf=2e9;
int a[100005];
int vis[100005]={0};
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++) cin>>a[i];
        for(int i=1;i<=m;i++) vis[i]=0;
        sort(a+1,a+1+n);

        int l=1;
        int ans=2e9;
        int cnt=0;
        for(int r=1;r<=n;r++)
        {
            for(int k=1;k*k<=a[r]&&k<=m;k++)
            {
                if(a[r]%k) continue;

                if(!vis[k]) cnt++;
                vis[k]++;

                if(k*k==a[r]||a[r]/k>m) continue;
                if(!vis[a[r]/k]) cnt++;
                vis[a[r]/k]++;
            }
            while(cnt==m)
            {
                ans=min(a[r]-a[l],ans);
                for(int k=1;k*k<=a[l]&&k<=m;k++)
                {
                    if(a[l]%k) continue;

                    vis[k]--;
                    if(!vis[k]) cnt--;

                    if(k*k==a[l]||a[l]/k>m) continue;
                    vis[a[l]/k]--;
                    if(!vis[a[l]/k]) cnt--;
                }
                l++;
            }

        }
        if(ans==inf) puts("-1");
        else  cout<<ans<<endl;
    }
    return 0;
}

标签:cnt,int,最大值,Quiz,vis,最小值,Master,ans
From: https://www.cnblogs.com/pure4knowledge/p/18250445

相关文章

  • 04.VisionMaster 机器视觉找圆工具
    VisionMaster机器视觉找圆工具定义先检测出多个边缘点然后拟合成圆形,可用于圆的定位与测量注意:找圆工具最好和【位置修正】模块一起使用。具体可以看下面的示例。参数说明:扇环半径:圆环ROI的内外圆半径边缘类型:最强-》只检测扫描范围内梯度最大的边缘点集合并拟合成圆......
  • 如何下载EarMaster Pro软件及详细安装步骤
    根据大数据调查表明软件功能和优势:灵敏的音高识别系统,准确辨认出您演唱或演奏的乐段。我们必须承认来自丹麦皇家歌曲学院的多媒体歌曲教育软件EarMasterPro以问答的交互形式,寓教于乐的视听方法,给专业和非专业歌曲人士以极大的歌曲学习帮助。很明显EarMaster提供了相当多的......
  • WPF master detail view
    <Windowx:Class="WpfApp143.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • 同星TSMaster中如何自定义E2E校验算法
    文章目录前言一、自定义E2E算法教程1.定义checksum算法2.定义【CAN预发送事件】3.E2E报文信号仿真4.运行工程二、TSMaster配置E2E教程1.激活仿真报文2.E2E配置三.小结前言最近因项目需要,用到TSMaster进行E2E校验算法实现。第一次使用TSMaster,把整个的过程做一个记......
  • Master ABP Framework(熟练掌握 ABP 框架)
    前言ABP框架是一个完整的基础框架,用于通过遵循软件开发的最佳实践和惯例来创建现代Web应用程序。ABP提供了一个高级框架和生态系统,以帮助您实施“不要重复自己”(DRY)原则并专注于您的业务代码。本书由ABP框架的创建者撰写,将帮助您从头开始全面了解ABP框架和现代Web应用程序开发......
  • 任务大师什么配置能玩?Quest Master官方推荐配置一览
    QuestMaster/任务大师不仅将为玩家提供丰富的地牢挑战,还带来了地牢创造的丰富玩法,让勇士们的冒险欲望不断膨胀,勇闯混沌洞穴,击穿他人的设计或建造独一无二的幽深地牢。有感兴趣的玩家想知道QuestMaster/任务大师什么配置能玩,下面本文将为大家带来QuestMaster/任务大师的官方......
  • error: no configuration has been provided, try setting KUBERNETES_MASTER environ
    1:问题kubernetes集群,一台master,一台node1,一台node2,重启电脑后,node1节点和node2节点报错如下error:noconfigurationhasbeenprovided,trysettingKUBERNETES_MASTERenvironmentvariable2:解决方法2.1:查看master节点进入到该目录下cd/etc/kubernetes把admi......
  • Unleashing Robotics: Mastering Quaternion Kinematics with Python - Chapter7(原创
    UnleashingRobotics:MasteringQuaternionKinematicswithPython-Chapter7(原创系列教程)本系列教程禁止转载,主要是为了有不同见解的同学可以方便联系我,我的邮箱[email protected].使用截断级数的近似方法在状态估计问题中,我们通常使用一个称为状态转移矩阵......
  • Unleashing Robotics: Mastering Quaternion Kinematics with Python - Chapter6(原创
    UnleashingRobotics:MasteringQuaternionKinematicswithPython-Chapter6(原创系列教程)(最关键一章)本系列教程禁止转载,主要是为了有不同见解的同学可以方便联系我,我的邮箱[email protected]第6章旋转的数值积分方法和角误差理论1.Runge-Kutta数值积分方法我......
  • Master of Both —— Trie的应用
    Trie树所有在老鼠岛上的老鼠都应该学习Trie树!——伟大的吱嘎鼠Trie树,就是所有Oier们喜闻乐见的字符串的超级优化的数据结构!已阅,狗屁不通。——吱嘎鼠字典树,顾名思义,是一颗很像字典的树,将相同前缀的字符串合并在一起,当出现不同时就分支,成为这样的树。在这样的树上,我们可......