[最大公约数] 枚举/暴力

Description

给定 n 个数, 从中选出 K 个。
Alice 想让 K 个数的最大公约数尽可能大, 求最大的最大公约数。 n <= 5e5

Solution

注意到数据范围,可以直接暴力从大到小枚举最大公约数,判断是否有大于K个的他的倍数,如果找到直接输出即可

Code

Copy
#include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) typedef long long ll; typedef unsigned long long ull; using namespace std; int cnt[600000 + 10]; int main() { //freopen("test.txt", "r", stdin); ios::sync_with_stdio(false); cin.tie(0); int N, K; cin >> N >> K; int maxx = -1; int temp; for (int i = 1; i <= N; i++) { cin >> temp; cnt[temp]++; maxx = max(maxx, temp); } for (int i = maxx; i >= 1; i--) { int co = 0; for (int j = i; j <= maxx; j += i) { co += cnt[j]; if (co >= K) { cout << i << endl; return 0; } } } return 0; }
posted @   EZ4ZZW  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
阅读排行:
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程
点击右上角即可分享
微信分享提示