codeforces1165D. Almost All Divisors

2023-05-16

题目链接 琪亚娜世界第一可爱

给出n个因数,求最小的数num,使得除1和num以外的因数都在给出的这n个数中,如果不存在输出-1 。


很水的一道题,但比赛的时候总在想怎么用lcm做,然后因为不知怎么预处理-1的情况,就一直卡。
但实际上,对给出的n个数排序,从两端各取一个数,如果存在的话,这两个数的乘积一定是相同的。
然后再判断是否所有的因数都在这n个数中,最后输出答案

复杂度的话,主要在最后一个判断里,就是判断是否所有因数都在这n个数中,最多可能执行1e6次,因为超过1e6的值不会出现在这n个数里,所以出现超过1e6的因数就会判错,最多共有25组。


#pragma GCC diagnostic error "-std=c++11"
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define Pair pair<int,int>
#define re return

#define getLen(name,index) name[index].size()
#define mem(a,b) memset(a,b,sizeof(a))
#define Make(a,b) make_pair(a,b)
#define Push(num) push_back(num)
#define rep(index,star,finish) for(register int index=star;index<finish;index++)
#define drep(index,finish,star) for(register int index=finish;index>=star;index--)
using namespace std;
const int maxn=305;

int N;
ll factor[maxn];
map<ll,bool> appear;
int main(){
    int _;
    scanf("%d",&_);
    while(_--){
        //ini
        appear.clear();

        scanf("%d",&N);
        rep(i,0,N){
            scanf("%lld",&factor[i]);
            appear[factor[i]]=true;
        }
        sort(factor,factor+N);

        int finish=N/2+N%2;
        ll lcm=factor[0]*factor[N-1];
        bool safe=true;
        rep(i,1,finish){
            if(lcm!=factor[i]*factor[N-i-1]){
                safe=false;
                break;
            }
        }
        if(!safe){
            printf("-1\n");
            continue;
        }

        for(register ll i=2;i*i<=lcm;i++){
            if(lcm%i)
                continue;
            if(!appear[i] || !appear[lcm/i]){
                safe=false;
                break;
            }
        }
        if(safe){
            printf("%lld\n",lcm);
        }else{
            printf("-1\n");
        }
    }

    re 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

codeforces1165D. Almost All Divisors 的相关文章

随机推荐

  • ERROR: glib-2.22 gthread-2.0 is required to compile QEMU

    问题描述 xff1a centos 6 5 源码编译qemu configure时出现错误 ERROR glib 2 22 gthread 2 0 is required to compile QEMU 解决方法 xff1a yum ins
  • metasploit msfconsole 命令参数

    在MSF里面msfconsole可以说是最流行的一个接口程序 很多人一开始碰到msfconsole的时候就害怕了 那么多复杂的命令语句需要学习 xff0c 但是msfconsole真的是一个强大的接口程序 Msfconsole提供了一个一体
  • 记事本输入“联通”俩字,关闭再打开乱码

    这是个很有意思的事情 这里需要提一下ANSI xff0c 不同的国家和地区制定了不同的标准 xff0c 由此产生了 GB2312 BIG5 JIS 等各自的编码标准 然后 xff0c 这些编码方式没有固定的格式 xff0c 但是比如说UTF
  • RoboRTS建图

    建图仿真 span class token function cd span RoboRTS ws src span class token function source span devel setup bash roslaunch r
  • RISC和CISC的区别

    文章目录 复杂指令集计算机 CISC 精简指令集计算机 RISC CISC与RISC的区别参考文章 RISC 精简指令集计算机 和CISC 复杂指令集计算机 是当前CPU的两种架构 它们的区别在于不同的CPU设计理念和方法 复杂指令集计算机
  • 单链表逆序(C语言)

    最近在复习数据结构 xff0c 刷题正好遇上 xff0c 所以整理一下 span class token macro property span class token directive keyword include span span
  • 各种颜色RGB值

    各种颜色RGB值 RGB 255 192 203 pink xff08 粉红 xff09 RGB 220 20 60 crimson xff08 腥红 xff09 RGB 255 240 245 lavenderblush xff08 苍白
  • 第一范式、第二范式、第三范式、BCNF范式详解

    文章目录 0 范式 NF 1 第一范式 xff08 1NF xff09 2 第二范式 xff08 2NF xff09 2 1 函数依赖2 1 1完全函数依赖2 1 2 部分函数依赖2 1 3 传递函数依赖 2 2 码2 3 非主属性 3 第
  • 数据库实体关系图(ERD)及其画法

    文章目录 1 什么是ER图 2 什么时候画ER图 2 1 数据库设计2 2 数据库调试2 3 数据库创建和补丁2 4 帮助收集需求 3 ERD符号指南4 概念 逻辑和物理数据模型5 如何绘制ER图 数据库绝对是软件系统不可分割的一部分 在数
  • Threads(异步和多线程)

    Task是 NET Framework3 0出现的 xff0c 线程是基于线程池的 xff0c 然后提供丰富的api xff0c Thread方法很多很强大 xff0c 但是太过强大 xff0c 没有限制 DoSomethingLong方法
  • Linux系统中添加库文件路径的方法

    文章目录 方法一方法二 库文件在链接 xff08 静态库和共享库 xff09 和运行 xff08 仅限于使用共享库的程序 xff09 时被使用 xff0c 其搜索路径是在系统中进行设置的 一般 Linux 系统把 lib和 usr lib
  • Linux 环境下 Qt 可执行程序依赖库打包脚本

    文章目录 一 利用 96 ldd 96 命令查看程序需要的依赖库二 编写依赖库打包脚本三 编写执行文件脚本四 总结 Linux 环境下 Qt 可执行程序依赖库打包脚本 使用 Qt Creator 完成程序编码之后 xff0c 虽然会在 De
  • RSA/ECDSA host key has changed 错误

    RSA host key for mysharebook cn has changed and you have requested strict checking Host key verification failed 这是Linux重
  • VS2013+Python在图像处理中的应用

    对Python的学习要从视频编码说起 其实 xff0c 我一直在用ffmpeg对视频做设计 处理 xff0c 后来发现Opencv也能干同样的事情 xff0c 就想研究一下Opencv是怎么实现的 xff0c 再后来就和Python扯上关系
  • 结构化数据、半结构化数据和非结构化数据

    本文转自http blog csdn net u010069220 article details 46895169 在实际应用中 xff0c 我们会遇到各式各样的数据库如nosql非关系数据库 xff08 memcached xff0c
  • linux中与文件系统相关的命令

    文章目录 前言一 软链接与硬链接二 磁盘与目录容量2 1 df2 1 1 功能2 1 2 范例 2 2 du2 2 1 功能2 2 2 范例 三 磁盘分区 格式化与挂载3 1 分区3 2 格式化3 3 挂载 四 文件及目录的相关操作4 1
  • 解析Windows 2000/XP进程工作集

    在 解析Windows 2000 XP物理内存管理 中我详细的介绍了页框数据库 Page Frame Database 的概念 xff0c 提到在物理内存的组织与管理方面对于每个页面系统都在页框数据库中保存一个结构 xff0c 用于跟踪页面
  • 洛谷 P1025 数的划分

    重点内容 设F i j 为用j个数组成i xff0c 答案为F 7 3 的话 一个思路是 xff0c 对于F 7 3 61 不含1的方案数 43 含1的方案数 F i j 61 a i j 43 b i j 子问题 a i j 61 F i
  • ubuntu出现有线已连接却无法上网的解决方法(ubuntu连不上网)

    ubuntu出现有线已连接却无法上网 xff0c 执行下面的命令可以解决 复制代码 代码如下 sudo sysctl net ipv4 conf default rp filter 61 0 sudo sysctl net ipv4 con
  • codeforces1165D. Almost All Divisors

    题目链接 琪亚娜世界第一可爱 给出n个因数 xff0c 求最小的数num xff0c 使得除1和num以外的因数都在给出的这n个数中 xff0c 如果不存在输出 1 很水的一道题 xff0c 但比赛的时候总在想怎么用lcm做 xff0c 然