F - GCD or MIN

首先gcd⁡(x,y)≤min⁡(x,y)\gcd(x,y)\leq \min(x,y)gcd(x,y)≤min(x,y)

数组中任意2个数的gcd可能是一种方案,任意3个数的gcd可能是一种方案…

如果我们能够把原数组任意个数的gcd全部列出来,能够满足题意的数一定在这些数之中,并且如果这个数不大于min⁡(a1→n)\min(a_{1\to n})min(a1→n​),它一定能够最后存在:先gcd把这个数搞出来,然后一直取min即可。

显然我们不能把任意多个数的gcd求出了,这时候尝试枚举每个数的约数,如果一个数的约数是其他几个数的gcd,这个数就可以作为答案称为一种方案。

判断一一些数的公共约数是否是最大公约数,只需要把这些数全部gcd,然后是不是它本身即可,详细看代码。

时间复杂度O(NAlog⁡A)O(N\sqrt{A}\log A)O(NA​logA)

#define IO ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
#pragma GCC optimize(2)
#include<map>
#include<iostream>
#include<algorithm>
using namespace std;
constexpr int N=2010;
int a[N],n;
map<int,int> mp;
int main()
{IO;int T=1;while(T--){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int vmin=*min_element(a+1,a+1+n);for(int i=1;i<=n;i++)for(int j=1;j<=min(vmin,a[i]/j);j++)if(a[i]%j==0){if(!mp.count(j)) mp[j]=a[i];else mp[j]=__gcd(mp[j],a[i]);if(a[i]==j*j) continue;if(a[i]/j<=vmin) {if(!mp.count(a[i]/j)) mp[a[i]/j]=a[i];else mp[a[i]/j]=__gcd(mp[a[i]/j],a[i]);}}int res=0;for(auto[a,b]:mp)res+=int(a==b);cout<<res<<'\n';}return 0;
}

要加油哦~

F - GCD or MIN(数论)相关推荐

  1. 2020 ICPC 济南 F. Gcd Product

    Gcd Product Cm=∑i=1mAgcd⁡(i,m)Bgcd⁡(k+1−i,m)∑d1∣mAd1∑d2∣mBd2∑i=1m([gcd⁡(id1,md1)=1][d1∣i])([gcd⁡(m+1 ...

  2. P5502 [JSOI2015]最大公约数(gcd性质/min性质/分治)

    P5502 [JSOI2015]最大公约数 对于求解(r-l+1)*gcd(l,r)的最大值,首先我们有一个性质,就是一个前缀的gcd本质不同个数只有log个,所以我们可以利用这个性质,然后每次分治处 ...

  3. Codeforces Round #632 (Div. 2) F. Kate and imperfection 数论 + 贪心

    传送门 文章目录 题意: 思路: 题意: n≤5e5n\le5e5n≤5e5 思路: 首先有个显然的结论:当往集合中加入一个数xxx的时候,如果存在d∣xd|xd∣x且ddd不在集合中,那么加入ddd ...

  4. HDU - 4497 GCD and LCM 数论gcd

    传送门 文章目录 题意: 思路: 题意: 给三个数的lcmlcmlcm和gcdgcdgcd,求满足条件的三元组组合个数. 思路: 首先lcmmodgcd==0lcm\bmod gcd==0lcmmod ...

  5. C - Maximize GCD(简单数论)

    C - Maximize GCD 给定长度为n,(2≤3×105)n, (2 \le 3 \times 10 ^ 5)n,(2≤3×105)的数组a,(1≤ai≤3×105)a, (1 \le a_i ...

  6. 《算法竞赛中的初等数论》(四)正文 0x40反演(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  7. [CodeForces1603D] Artistic Partition(四边形不等式 + 决策单调性优化dp + 分治 + 线性筛 + 数论分块)

    problem codeforces 对于给定的正整数 l≤l\leql≤,定义 c(l,r)c(l,r)c(l,r) 为满足下列条件的正整数对 (i,j)(i,j)(i,j) 的数量: l≤i≤j≤ ...

  8. 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法

    打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...

  9. 洛谷 P2257 YY的GCD

    YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定\(N\), \(M\) ,求\(1 \le x \le N,1 \le y \le M\)且\(gcd(x, y)\)为质数的\( ...

最新文章

  1. [转]html5: postMessage解决跨域和跨页面通信的问题
  2. Android NDK开发之旅1 NDK介绍
  3. C# 8 新特性 - 可空引用类型
  4. 深入Java类型信息:RTTI和反射
  5. 计算机网络在金融领域的应用,计算机网络毕业论文计算机网络技术在金融领域的应用.pdf...
  6. Zookeeper是什么
  7. 现代企业制度,无助于解决企业亏损倒闭问题
  8. Ubuntu 14.04 LTC 有线网络--网线不识别,灯不亮问题
  9. dll注入之SetWindowsHookEx 键盘消息钩子
  10. docker装LibreELEC_瞎弄 篇一:J3455NUC虚拟机安装LibreELEC核显直通HDMI输出
  11. 苹果计算机怎么隐藏应用,苹果电脑怎么隐藏界面图标
  12. centsos7网络连接激活失败_宽带连接时出现711错误的解决方法 | 小马激活官网
  13. 3D产品建模为3D产品展示打下基础
  14. Win7 usb连接打印机无法使用,在控制面板有usbprint小黄感叹号,windows update无法找到相应驱动。
  15. 网页/博客Hexo添加live2d游戏角色看板娘,简易添加,碧蓝航线等live2d新型游戏角色模型(moc3)
  16. 基于Layui自定义内容轮播插件
  17. PotPlayer打开视频没声音,显示DirectX有问题或者音频禁用怎么办?
  18. 计算机音乐谱消愁,消愁简谱-毛不易-歌词字字扎心,听者个个飙泪
  19. oa办公自动化系统有什么作用?
  20. Manacher回文串(板子总结)

热门文章

  1. 2020研究生数学建模结果_关于举办2020年全国研究生数学建模大赛的通知
  2. python爬取网页数据软件_python爬虫入门10分钟爬取一个网站
  3. python getattr_详解 Python 的二元算术运算,为什么说减法只是语法糖?
  4. python类和函数_构建程序. Python中的类和函数
  5. ie插件获取dom_读书笔记《DOM编程艺术》DOM
  6. 数据结构——基于 Dijsktra 算法的最短路径求解
  7. python程序启动其他python程序,如何使用Python启动应用程序的实例?
  8. leetcode049. 最后一块石头的重量 II
  9. Java实现AVL平衡树
  10. [Java基础]System类的常用方法