2016年蓝桥杯预赛第十题最大比例

2023-11-15

题目:最大比例

X星球的某个大奖赛设了M级奖励。每个级别的奖金是一个正整数。
并且,相邻的两个级别间的比例是个固定值。
也就是说:所有级别的奖金数构成了一个等比数列。比如:
16,24,36,54
其等比值为:3/2

现在,我们随机调查了一些获奖者的奖金数。
请你据此推算可能的最大的等比值。

输入格式:
第一行为数字N,表示接下的一行包含N个正整数
第二行N个正整数Xi(Xi<1 000 000 000 000),用空格分开。每个整数表示调查到的某人的奖金数额

要求输出:
一个形如A/B的分数,要求A、B互质。表示可能的最大比例系数

测试数据保证了输入格式正确,并且最大比例是存在的。

例如,输入:
3
1250 200 32

程序应该输出:
25/4

再例如,输入:
4
3125 32 32 200

程序应该输出:
5/2


再例如,输入:
3
549755813888 524288 2

程序应该输出:
4/1

资源约定:
峰值内存消耗 < 256M
CPU消耗 < 3000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
 

 

解题思路:这一题,我先对n个数排序,然后相邻两个相除,得到n-1个数,这n-1个数都是公比的正整数次方,然后我把两个次方数在相除,都是大的除小的,打个比方,两个数位q^15和q^6,

q^15/q^6 = q^9,     q^9/q^6 = q^3 ,   q^6/q^3 = q^3     q^3/q^3 = 1,不然它等于1,所以保留q^3,说明两个是都是q^3的次方,

然后也是连续两个数按上面方法处理,每一次从头到尾处理过后,n-1个数变为n-2个数,n-2个数变为n-3个,....直到只剩一个数就是答案,这个数不一定是q,可能是q的m次方,如果是q的m次方,说明输入的数都是这个数的次方,那这个数就可以当作这个数列的公比,当然q也可以作为这个数列的公比,甚至q,q^2,....q^m次方都可以作为公比,按题意输出最大的,就是剩下来的数。

要严谨的数学证明的话,不会,只是觉得两个不同次方,一直大的除小的,就是次方相减,最后可以得到一个数,就好像最大公约数一样。

 

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long LL;
struct Node{
	LL x, y;
};
LL arr[105];
vector<Node> vec;
LL gcd(LL a, LL b){
	if(a%b == 0)return b;
	return gcd(b, a%b);
}

void getAns(){
	vector<Node> tmp = vec;
	vec.clear();
	Node head = tmp.at(0);
	LL xa = head.x, ya = head.y;
	for(int i=1; i<tmp.size(); ++i){
		LL xb = tmp.at(i).x, yb = tmp.at(i).y;
		while(xa!=xb || ya!=yb){
			if(xa*yb<ya*xb){
				swap(xa, xb);
				swap(ya, yb);
			}
//			printf("%lld %lld %lld %lld\n", xa, ya, xb, yb);
			LL xayb = xa*yb, xbya = xb*ya;
			LL g = gcd(xayb, xbya);
			xa = xayb/g;
			ya = xbya/g;
		}
		Node node;
		node.x = xa; node.y = ya;
		vec.push_back(node);
	}
}

int main()
{
	int n;
	scanf("%d", &n);
	for(int i=0; i<n; ++i){
		scanf("%lld", &arr[i]);
	}
	sort(arr, arr+n);
	for(int i=0; i<n-1; ++i){
		if(arr[i] == arr[i+1])continue;
		LL g = gcd(arr[i+1], arr[i]);
		Node tmp;
		tmp.x = arr[i+1]/g; tmp.y = arr[i]/g;
		vec.push_back(tmp);
	}
	if(vec.empty()){		//vec为空,这说明输入的数都一样 
		printf("1/1");
		return 0;
	} 
	while(vec.size() > 1){
//		cout << vec.size() << endl;
		getAns();
	}
	printf("%lld/%lld", vec.at(0).x, vec.at(0).y);
	return 0;
 } 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2016年蓝桥杯预赛第十题最大比例 的相关文章

  • 完整的 CentOS 系统服务器初始化配置、系统安全加固、系统内核参数优化以及常用软件安装脚本分享...

    描述 适用于企业内部 CentOS7 系列服务器初始化 系统安全加固脚本 内容包含了 网络初始化设置 软件更新源替换以及内核升级实践 时间时区初始化设置 系统安全加固 等保三级操作系统主机检查项 安全运维设置 系统内核参数 常用软件安装等
  • Vue技术_props配置(提高了组件的复用性)

    一 props简介 在Vue中 props属性是用于组件之间传递数据的一种机制 通过在子组件中定义props属性 可以接收父组件传递的数据 并在子组件中使用这些数据 下面是props属性的一些详细说明 1 定义和传递props 在子组件中使
  • 2.CMake的入门准备

    在计算机上获取以及安装CMake 在使用 CMake 之前 您需要在系统上安装或构建 CMake 二进制文件 在许多系统上 您可能会发现 CMake 已经安装或可以使用系统的标准包管理器工具进行安装 Cygwin Debian FreeBS
  • 【OpenCV • c++】直方图计算

    文章目录 一 什么是直方图 二 直方图的相关函数 1 计算直方图 calcHist 2 找寻最值 minMaxLoc 三 程序演示 1 色调 饱和度直方图 2 一维直方图 3 RGB 三色直方图 一 什么是直方图 直方图广泛应用于很多计算机
  • weex vue 动态添加图标字体

    研究半天才明白 其实就是unicode字符串解码成文字就可以了 就这么简单 简单
  • 送书|逆向系列-你一定要懂的MD5加密

    逆向的步骤 逆向的步骤主要包含以下几点 抓包 抓包的过程其实很简单 在学爬虫入门的时候 想必这是每一个同学都必学的一个阶段 打开开发者调试工具 刷新页面 即可在network面板查看到加载出来的数据包 调试 当找到目标数据包时 根据目标数据
  • 【100%通过率 】【华为OD机试真题c++】递增字符串【 2023 Q1A卷

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 问题描述 定义字符串完全由 A 和 B 组成 当然也可以全是 A 或全是 B 如果字符串从前往后都是以字典序排列的 那么我们称之为严格递增字符串 给出一个
  • TypeError: expected Tensor as element 0 in argument 0, but got numpy.ndarray

    显而易见 是pytorch中的Tensor和numpy ndarry类型导致的问题 只需要进行array和tensor的转换就行 调用函数torch from numpy annotation 实现array转换tensor
  • 萤石智能猫眼质保

    总流程 1 官网 https www ys7 com loginRedirect 1 2 登录 3 进入售后界面 4 填写申请单 5 寄送 根据短信
  • 程序员面试大厂被拆台:干这么多年不懂设计模式谁会要

    正在敲代码的你 春节假期即将来临 复盘这1年 你印象最深刻的一件事是什么 有人在群里回答了一条扎心的答案 忙碌1年 每天996 回首2019除了加班再无成长可说 你以为只要把事情搞定了 成长是一件自然而然的事情 但是过段时间你发现之前犯过的
  • Java生成doc文档一(概念简介)

    在很多项目的实际工作中 后端可能需要将一些整合的数据输出成word pdf excel等形式的文档 最近我在项目也遇到这样的而需求 这里就记录下来是如何一步一步完成java后端生成doc文档的 由于现在word文档基本都是用到07以上 所以
  • 协程中的流

    协程中的异步流 基础 一 什么是异步流 可以连续返回多个值 与集合的区别 集合可以返回多个计算好的值 但是只能一次性返回 与Rxjava 的流是同一个概念 二 如何创建异步流 1 最基础的流构建器 flow flow 构建块中的代码可以挂起
  • Windows上发生异常时抓取dump

    文章目录 正文 RaiseException函数 捕获大部分崩溃 SetUnhandledExceptionFilter 那还有小部分呢 为什么调试器可以抓到所有崩溃 CRT C STL 系统API之间的关系 CRT中几个重要的函数 退出进
  • 学长告诉我,大厂MySQL都是通过SSH连接的

    大家好 我是咔咔 不期速成 日拱一卒 一 背景 之前待的几个公司 数据库 服务器权限都是给所有后端直接拉满的 但也会出现员工离职的情况 每次有人离职时都需要改数据库密码 服务器密码 每次密码修改后得告知所有开发修改本地密码 但这样的事情也不
  • 详解反调试技术

    反调试技术 恶意代码用它识别是否被调试 或者让调试器失效 恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作 因此他们使用反调试技术尽可能地延长恶意代码的分析时间 为了阻止调试器的分析 当恶意代码意识到自己被调试时 它们可能改变
  • xilinx mipi ip

    占位
  • JSP页面中Input输入框获取当前系统时间

    JSP页面中Input输入框获取当前系统时间 在input属性value中填写如下代码即可获取系统当前时间输入 value
  • switch游戏机小白初体验

    1 switch版本区别 lite 续航版与oled的区别 oled屏幕比续航版的大 续航版和oled版都可以连接电视或显示器 lite只能玩掌机 只喜欢玩掌机的可以选lite 更便宜 国行 港版 日版的区别 国行不能与全球玩家联机 不能买
  • warning: could not find UI helper ‘git-credential-manager-ui‘

    可以先试试别人的教程 58条消息 关于git 凭证存储 credential helper配置 解决 git pull push fetch remote not found的问题 DavidFFFFFF的博客 CSDN博客 我是因为换了电
  • Python pyinstaller打包exe最完整教程

    目录 1 简介 2 安装 3 原理和打包效果 3 1 原理概述 3 2 搜索模块 3 3 打包效果概述 3 4 打包成单个文件夹 优点 缺点 3 5 打包成单个exe 优点 缺点 4 打包 4 1 基本语法 4 2 参数总览 位置参数 可选

随机推荐

  • IDEA导入eclipse项目并部署运行完整步骤(转发)

    首先说明一下 idea里的project相当于eclipse里的workspace 而idea里的modules相当于eclipse里的project 1 File gt Import Project 在弹出的对话框里选择要导入的项目 2
  • IAR仿真确认延时程序时间的准确性

    单片机 程序经常会用到延时函数 毫秒延时或微秒延时函数 为了确认延时函数时间的准确性 以前经常是需要通过IO口输出波形来确认时间是否准确 最近发现了个更方便准确的方法 只需要通过IAR仿真软件即可准确知道延时函数的运行时间 1 首先在IAR
  • SQL 数据更新

    SQL 数据更新 数据更新有三种 插入 修改 删除 一 插入数据 插入元组 行 INSERT Into lt 表名 gt lt 属性列1 gt lt 属性列2 gt lt 属性列3 gt lt 属性列4 gt Values lt 常量1 g
  • 2022.7台式机装机指南(3060 + 12490F)

    文章目录 硬件购买 装机避坑 系统制作 系统激活 大学四年用的华硕飞行堡垒FX86 那时候的配置还可以 8代i7 1050ti 8G 256固态 1T机械 后来又买了一张内存条 扩到了16g 四年只出过2次故障 第一次蓝屏自己修好了 第二次
  • PDF Redactor - 涂黑屏蔽PDF文字让敏感内容不可读的软件工具

    PDF Redactor是一款Windows平台下的PDF小工具软件 旨在涂黑屏蔽或删除PDF文件中的敏感文本和图像以保护隐私 被屏蔽的内容不仅在PDF阅读器中无法查看 而且即使使用文本搜索功能也无法再找到这部分内容 这些内容将从PDF文件
  • python json.dumps中文乱码问题解决

    json dumps var ensure ascii False 并不能解决中文乱码的问题 json dumps在不同版本的Python下会有不同的表现 注意下面提到的中文乱码问题在Python3版本中不存在 注 下面的代码再python
  • 解决pyside6-uic生成py代码中文为unicode(乱码)的问题

    前言 本来想用Java做客户端 后来发现很多算法还是Python有现成的比较方便 所以最终选择了pyside6 但是用Designer QT设计师 设计完后 生成的代码中文部分显示为unicode 也可以理解为乱码 就像这样 self pu
  • 前端分页插件_免费开源的React前端框架——ReactAdmin

    介绍 ReactAdmin是一个Github上免费开源的前端框架 不是组件库 也不是模板 它是一个框架 采用es6 React和Material Design构建基于Rest GraphQl API的Web应用程序 在React上star数
  • Android实现用户登录和注册界面

    我们在做android项目时经常会用到用户登录 这里呈上实现了Spinner的登录界面 初学的朋友可以直接拿过来使用 本界面使用的是流式布局 也是我最喜欢用的布局方式 同学们可以通过代码了解一下 代码中Intent的使用有点杂乱 主要是为了
  • sql逗号分开的指定列,分成多行

    if object id tempdb dbo tb is not null drop table tb go create table tb id int price varchar 100 customer int cinvcode i
  • 掌握这个技能,再也不用为面试发愁了

    点击上方 前端瓶子君 关注公众号 回复算法 加入前端编程面试算法每日一题群 废话只说一句 码字不易求个 收藏 学会 快行动起来吧 评论区走起 在面试时 经过简单寒暄后 面试官一般先从让候选人自我介绍开始 紧接着就是问候选人简历中所列的项目
  • weblogic CVE-2023-21839 复现

    影响版本 Weblogic 12 2 1 3 0 Weblogic 12 2 1 4 0 Weblogic 14 1 1 0 0 这里是用的docker下载的vulhub的CVE 2023 21839 靶机和攻击机都是192 168 85
  • 2019.08 FSGAN -论文解读

    原文链接 https zhuanlan zhihu com p 138042376 笔者前言 FSGAN Subject Agnostic Face Swapping and Reenactment 是ICCV19的一篇文章 主要工作是面部
  • 高等代数 二次型与矩阵的合同(第6章)1 二次型,标准形,规范形

    一 二次型 6 1 1 概念 2 非退化线性替换 准确地说 应该是将 x x x用 C x Cx Cx带入 这样能保证代换前后二次型中的元不
  • 玩转Mysql系列 - 第15篇:详解视图

    这是Mysql系列第15篇 环境 mysql5 7 25 cmd命令中进行演示 需求背景 电商公司领导说 给我统计一下 当月订单总金额 订单量 男女订单占比等信息 我们啪啦啪啦写了一堆很复杂的sql 然后发给领导 这样一大片sql 发给领导
  • Request对象和response对象

    一 概念 request对象和response对象是通过Servlet容器 如Tomcat 自动创建并传递给Servlet的 Servlet容器负责接收客户端的请求 并将请求信息封装到request对象中 然后将request对象传 递给相
  • C语言实现栈(基于数组)

    栈是一种操作受限的数据结构 只允许从一段操作 而且先进后出 FILO first in last out 这里将栈的操作封装在C语言的头文件里 实现栈的代码如下 include
  • 关于Git看这一篇就够了(IDEA版本)

    目录 一 Git简介 1 1 项目的版本管理 1 2 团队协同开发 1 3 版本管理工具 Git 二 Git下载及安装 2 1 下载Git 2 2 安装Git 2 3 检查 三 Git架构 四 Git基本使用 4 1 创建版本库 4 2 查
  • 132_Springboot总是会自动在/tmp/spring.log生成日志文件问题处理

    原因是项目配置文件中有如下引用
  • 2016年蓝桥杯预赛第十题最大比例

    题目 最大比例 X星球的某个大奖赛设了M级奖励 每个级别的奖金是一个正整数 并且 相邻的两个级别间的比例是个固定值 也就是说 所有级别的奖金数构成了一个等比数列 比如 16 24 36 54 其等比值为 3 2 现在 我们随机调查了一些获奖