码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ​L:最大公约数


    链接:登录—专业IT笔试面试备考平台_牛客网
    来源:牛客网
     

    题目描述

    Captorry\tt{Captorry}Captorry 很喜欢数论。

    一天,他拿到了 nnn 个数 a1,a2,…,ana_1,a_2,\dots,a_na1​,a2​,…,an​ 并且算出了他们两两间(包括自己和自己)的 gcd⁡\gcdgcd(最大公约数),即所有的  gcd⁡(i,j)(1≤i≤n,1≤j≤n)\gcd(i,j)(1 \le i\le n,1\le j\le n)gcd(i,j)(1≤i≤n,1≤j≤n) ,一共 n2n^2n2 个数。

    但是万恶的 mep\tt{mep}mep 学长抹去了这 nnn 个数并随机打乱了这 n2n^2n2 个 gcd⁡\gcdgcd ,现在 Captorry\tt{Captorry}Captorry 想让你帮他还原出这 nnn 个数。

    将你还原的 nnn 个数从小到大输出。

    输入描述:

     
    

    第一行一个正整数 n (1≤n≤1000)n\ (1 \le n \le 1000)n (1≤n≤1000) 表示开始 Captorry\tt{Captorry}Captorry 拿到的数的数量。

    第二行 n2n^2n2 个数 ai (1≤ai≤109)a_i\ (1 \le a_i \le 10^9)ai​ (1≤ai​≤109) 表示这些数两两的 gcd⁡\gcdgcd ,注意我们并不知道每个数是哪两个数的 gcd⁡\gcdgcd 。

    输出描述:

    一行从小到大 nnn 个数,表示你还原的答案。

    思路:首先,n^2个数中最大的两个数一定等于 an−1 和 an ,所以我们把gcd(an−1,an) 这个数和an−1 和 an从序列中除去,接下来的思路类似,在序列中选出最大的数作为 an−2 ,并计算与an−1和 an 的gcd,从序列中除去,以此类推。

    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. int n,a[1000001],ans[1003];
    4. map<int ,int> mp;
    5. int main()
    6. {
    7.     ios::sync_with_stdio(false);
    8.     cin.tie(0),cout.tie(0);
    9.     cin>>n;
    10.     int m=n*n,k=n;
    11.     for (int i=1;i<=m;i++) 
    12.     {
    13.         cin>>a[i];
    14.         mp[a[i]]++;
    15.     }
    16.     sort(a+1,a+m+1);
    17.     ans[k--]=a[m];
    18.     mp[a[m]]--;
    19.     for (int i=m-1;i>0;i--)
    20.     {
    21.         if (mp[a[i]]<=0) continue;
    22.         
    23.         for (int j=k+1;j<=n;j++)
    24.         {
    25.             int t=gcd(a[i],ans[j]);
    26.             mp[t]-=2;//易错
    27.         }
    28.         ans[k--]=a[i];
    29.         mp[a[i]]--;
    30.     }
    31.     for (int i=1;i<=n;i++) cout<<ans[i]<<" ";
    32.     return 0;
    33. }

  • 相关阅读:
    CompletableFuture异步编程Api使用详解
    Flink入门
    Java虚拟机
    【Flask框架】四. Flask框架之 MySQL数据库操作及项目重构
    类型体操:探究 TypeScript 内置高级类型
    springboot+poi-tl根据模板导出word(含动态表格和图片),并将导出的文档压缩zip导出
    《ElementPlus 与 ElementUI 差异集合》el-popconfirm 气泡确认框之插槽写法有差异
    计算机毕业设计SSM城市智能公交系统【附源码数据库】
    java计算机毕业设计Web医学院校大学生就业信息管理系统MyBatis+系统+LW文档+源码+调试部署
    CIKM 2020 | FANG:利用社会语境及其图表示进行假新闻检测
  • 原文地址:https://blog.csdn.net/weixin_61813771/article/details/127583929
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号