当前位置: 首页 > news >正文

蓝桥杯宝石组合(数论,因数)

 

输入样例:
5
1 2 3 4 9
输出样例:
1 2 3

 

思路:

如果直接按题意暴力的话,只能过30%,所以应该推导出更简便的公式,推导如下

或者多带几组数据会发现 S与三个数的最大公因数程正比,所以只要在这组数中找到3个数的最大公因数是所有组合里最大的即可,但是如果直接3个for循环分别找公因数会超时,所以我们干脆对每个数都找到它的因数,(因数最大也就是Hi最大为1e5)开vector二维数组,其中v[i][j]表示当因数为i时的第j+1个数,最后由于要找最大因数,我们倒叙输出即可

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+5;
int n,a[N];
vector<int> v[N];
signed main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i=0;i<n;i++)
	    cin>>a[i];
	sort(a,a+n);
	for(int i=0;i<n;i++)
	{
		for(int j=1;j*j<=a[i];j++)
		{
			if(a[i]%j==0) 
			{
				v[j].push_back(a[i]);
				if(a[i]/j!=j) v[a[i]/j].push_back(a[i]);
			}
		}
	}
	for(int i=1e5;i>=1;i--)
	{
		if(v[i].size()>=3)
		{
			cout<<v[i][0]<<" "<<v[i][1]<<" "<<v[i][2]<<endl;
			break;
		}
	}
	return 0;
}

 

相关文章:

  • 连锁管理系统的五大核心设计及 PHP 源码分享
  • 如何使用SSH连接设备?很简单!
  • 登录逻辑结合redis
  • 算法-二叉树篇02-二叉树的迭代遍历
  • 【leetcode hot 100 1】两数之和
  • el-date-picker 组件限制禁止选择当前时间之前的时间
  • 鸿蒙开发深入浅出04(首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影)
  • 05. Springboot admin集成Actuator(一)
  • qt:多元素类,容器类,布局类
  • 大白话javascript如何通过原型链实现对象的继承,并指出这种继承方式的优缺点
  • JVM 高级面试题及答案整理,最新面试题
  • Win32/ C++ 简易对话框封装框架(多语言, 通知栏菜单, 拖拽文件处理)
  • Logback:强大的Java日志框架
  • 大模型面试问题准备
  • 【idea问题排查技巧】
  • C++中数学函数的使用方法
  • Python游戏编程之赛车游戏6-5
  • ESP32学习笔记_Bluetooth(3)——GATT
  • 计算机毕业设计SpringBoot+Vue.js足球青训俱乐部管理系统(源码+文档+PPT+讲解)
  • vue从入门到精通(十三):收集表单数据
  • 网站及app开发/搜索引擎优化的工具
  • 百度小程序模板/珠海seo推广
  • 西安网站seo费用/山东做网站公司
  • 网站建设费用设计/百度关键词竞价价格查询
  • 公众号里的电影网站怎么做的/青岛seo精灵
  • 吉安购物网站制作/如何注册域名及网站