F - GCD or MIN(数论)

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(a1n),它一定能够最后存在:先gcd把这个数搞出来,然后一直取min即可。

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

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

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

#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;
}

要加油哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P4199-万径人踪灭【FFT】

正题 题目链接:https://www.luogu.com.cn/problem/P4199 题目大意 给出一个只包含a,ba,ba,b的字符串 求有多少个不连续的回文子序列&#xff08;字母回文&#xff0c;位置对称&#xff09; 1≤n≤1051\leq n\leq 10^51≤n≤105 解题思路 这个不连续一看就很nt&#xff0c;考…

被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾

前天, 2018年11月10日, 广州图书馆\微软云开发者社区\广东职业教育信息化研究会\珠三角技术沙龙在广州图书馆负一层1号报告厅搞了一场”微软最有价值专家(MVP)广州分享会 - MonkeyFest 2018广州分享会”. 这是在广州图书馆官方微信公众号上的活动报名链接: https://mp.weixin.q…

[蓝桥杯][2017年第八届真题]发现环

题目链接 题目描述 小明的实验室有N台电脑&#xff0c;编号1~N。原本这N台电脑之间有N-1条数据链接相连&#xff0c;恰好构成一个树形网络。在树形网络上&#xff0c;任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时&#xff0c;管理员误操作使得某两台电脑之间增…

P7323-[WC2021]括号路径【并查集,启发式合并】

正题 题目链接:https://www.luogu.com.cn/problem/P7323 题目大意 给出nnn个点的一张有向图。每个边(u,v,w)(u,v,w)(u,v,w)表示u−>vu->vu−>v有一个类型www的左括号边&#xff0c;v−>uv->uv−>u有一个类型www的右括号边。 求图中有多少点对满足它们之间…

P3565 [POI2014]HOT-Hotels(树形dp+长链剖分)

P3565 [POI2014]HOT-Hotels 参考题解 题目大意&#xff1a; 给定一棵树&#xff0c;在树上选 3 个点&#xff0c;要求两两距离相等&#xff0c;求方案数。 三个点树上两两距离为d存在下面两种情况 某个点三个子树&#xff08;保证该点是LCA&#xff09;中分别由三个点距离它为…

C#的RSA加密解密签名,就为了支持PEM PKCS#8格式密钥对的导入导出

差点造了一整个轮子.Net Framework 4.5 里面的RSA功能&#xff0c;并未提供简单对PEM密钥格式的支持&#xff08;.Net Core有咩&#xff1f;&#xff09;&#xff0c;差点&#xff08;还远着&#xff09;造了一整个轮子&#xff0c;就为了支持PEM PKCS#8、PKCS#1格式密钥对的导…

P4494-[HAOI2018]反色游戏【圆方树】

正题 题目链接:https://www.luogu.com.cn/problem/P4494 题目大意 给出nnn个点mmm条边的一张无向图&#xff0c;节点有0/10/10/1&#xff0c;每条边可以选择是否取反两边的点。 开始求将所有节点变为000的方案&#xff0c;然后对于每个点询问删去这个点之后的方案 1≤T≤5,1…

福州首届.NET开源社区技术交流会圆满成功

活动总结2018年11月10日周六的下午&#xff0c;在福州蒲公英创新工场举办了福州首届.NET开源社区技术交流会&#xff0c;来自福建省各大科技公司的技术小伙伴齐聚一堂&#xff0c;为了就是能在现场学习到微软跨平台技术.NET Core、微服务以及Azure云服务。在交流会现场&#xf…

【模板】高精度

ACM模板 #include<string> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct bign {int d[200010], len;bign() { memset(d, 0, sizeof d); len 1; }bign(int num) { *this num; }big…

POJ3734-Blocks【EGF】

正题 题目链接:http://poj.org/problem?id3734 题目大意 用思种颜色给nnn个格子染色&#xff0c;要求前两种颜色出现偶数次&#xff0c;求方案。 1≤T≤100,1≤n≤1091\leq T\leq 100,1\leq n\leq 10^91≤T≤100,1≤n≤109 解题思路 反正是EGF\text{EGF}EGF的十分入门题了。…

[蓝桥杯][2017年第八届真题]对局匹配

题目描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分&#xff0c;代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时&#xff0c;只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K&#xff0c;系统都不会将他们…

codeforce23 E. Tree(高精度+树形dp)

E. Tree 状态表示&#xff1a;fu,jf_{u,j}fu,j​表示以uuu节点的子树&#xff0c;uuu所在连通块大小为jjj时&#xff0c;并且没有算上uuu连通块的贡献的最大值 状态计算&#xff1a; 对于一棵子树vvv来说&#xff0c;显然可以有两种情况 uuu节点与vvv节点不连通&#xff1a;fu…

.NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐

引子为什么写这篇文章呢&#xff1f;因为.NET Core的生态越来越好了&#xff01;之前玩转.net的时候操作Redis相信大伙都使用过一些组件&#xff0c;但都有一些缺点&#xff0c;如ServiceStack.Redis 是商业版&#xff0c;免费版有限制&#xff1b;StackExchange.Redis 是免费版…

CF891E-Lust【EGF】

正题 题目链接:https://www.luogu.com.cn/problem/CF891E 题目大意 nnn个数字的一个序列aia_iai​&#xff0c;每次随机选择一个让它减去一。然后贡献加上所有其他aia_iai​的乘积。 执行kkk次&#xff0c;求贡献答案。 1≤n≤5000,0≤ai,k≤1091\leq n\leq 5000,0\leq a_i,k…

P2495 [SDOI2011]消耗战(树形dp+虚树)

P2495 [SDOI2011]消耗战 树形dp 状态表示&#xff1a;fuf_ufu​表示以uuu为根的子树中&#xff0c;uuu节点与子树中的关键的“隔开”所需要的最小代价 状态转移&#xff1a; 考虑uuu的一个儿子vvv vvv是关键点&#xff1a;fufuwu→vf_uf_uw_{u\to v}fu​fu​wu→v​vvv不是关键…

牛客题霸 车站建造问题 C++题解/答案

题目描述 有108个村庄排在一条公路上&#xff0c;依次编号为0~108-1&#xff0c;相邻村庄距离为1&#xff0c;其中有n个村庄居住着牛牛&#xff0c;居住着牛牛的村庄从小到大依次为a0~an-1&#xff0c;其中保证a00. 现在需要建设车站&#xff0c;有两个要求必须被满足&#xf…

【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)

上篇文章我们介绍了如何扩展Ocelot网关&#xff0c;并实现数据库存储&#xff0c;然后测试了网关的路由功能&#xff0c;一切都是那么顺利&#xff0c;但是有一个问题未解决&#xff0c;就是如果网关配置信息发生变更时如何生效&#xff1f;以及我使用其他数据库存储如何快速实…

P5666-[CSP-S2019]树的重心【树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/P5666 题目大意 给出nnn个点的一棵树&#xff0c;对于每条边割掉后两棵树重心编号和。 1≤T≤5,1≤n≤2999951\leq T\leq 5,1\leq n\leq 2999951≤T≤5,1≤n≤299995 解题思路 编号和&#xff0c;所以应该是要我们枚举点然后…

牛客题霸 牛妹的蛋糕 C++题解/答案

题目描述 众所周知&#xff0c;牛妹非常喜欢吃蛋糕。 第一天牛妹吃掉蛋糕总数三分之一&#xff08;向下取整&#xff09;多一个&#xff0c;第二天又将剩下的蛋糕吃掉三分之一&#xff08;向下取整&#xff09;多一个&#xff0c;以后每天吃掉前一天剩下的三分之一&#xff08…

计算机提示找不到vcruntime140.dll,无法继续执行代码怎么办?如何修复

“找不到vcruntime140.dll&#xff0c;无法继续执行代码”。这个问题可能会让你感到困惑&#xff0c;不知道如何解决。那么&#xff0c;vcruntime140.dll是什么文件&#xff1f;它为什么会丢失&#xff1f;又该如何解决这个问题呢&#xff1f;本文将为你详细介绍vcruntime140.d…