蓝桥杯算法题:最大比例

题目描述:
X星球的某个大奖赛设了 M 级奖励。

每个级别的奖金是一个正整数。

并且,相邻的两个级别间的比例是个固定值。

也就是说:所有级别的奖金数构成了一个等比数列。

比如:16,24,36,54,其等比值为:3/2。

现在,我们随机调查了一些获奖者的奖金数。

请你据此推算可能的最大的等比值。

输入格式:
第一行为数字 N ,表示接下的一行包含 N 个正整数。

第二行 N 个正整数 Xi,用空格分开,每个整数表示调查到的某人的奖金数额。

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

数据范围:
0<N<100
0<Xi<10^9
数据保证一定有解。

输入样例1:
3
1250 200 32
输出样例1:
25/4

这道题,做的时候可以气死我,为什么呢?首先我觉得它的范围有问题,就是这里的Xi它说小于10的九次方,所以用int也不会超的吧,没想到他还真超了呢,我看了很多遍代码,都没看见什么乘法和加法能让一个数超int的,然后我去看别人的博客,发现,XX的,别的博客给的Xi范围是10^12,不会蓝桥云课刷题那里写少了吧,气死我了,我真的真的改了很久的代码!!!!!

然后第二个气人的点是,这道题没卡测试点,所以直接用gcd求出相邻两数的互质比值,找出整个范围最小的那个就可以了,这样好像也可以过,不过怎么会这样子,比如说三个奖励1 4 32,最大合适的比例应该是2/1,而不是4/1,我看见有个人的代码,结果是4/1也能对,就是好像蓝桥云课刷题那里拿的测试点太低端了,卡不了代码,气死我了!!!!!测试点都不好好弄一下

接下来说思路:要想找到最小比例,得用指数的更相减损术,可以看一下另一个博客:

http://t.csdnimg.cn/NPZtY

有了这个,代码就好写了,哦对,记得审题,题目可能有重复的奖金,因为有不同的人可能拿同一类奖金,这个要筛掉,不然会出问题的!!!!

ac代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N=1e2+10;
#define ll long long
ll x[N],temp[N];
ll a,b;
ll gcd_sub(ll x1,ll x2) { if(x1<x2)swap(x1,x2);//保证x1比x2大 if(x2==1)return x1;return gcd_sub(x2,x1/x2); 
}
int main() {int n;cin>>n;for(int i=0; i<n; i++)cin>>temp[i];int len=0;sort(temp,temp+n);x[len++]=temp[0];for(int i=1;i<n;i++){if(temp[i]!=temp[i-1])x[len++]=temp[i];}if(len==1) {printf("%ld/1",x[0]);} else {a=x[1]/__gcd(x[0],x[1]),b=x[0]/__gcd(x[0],x[1]);for(int i=2; i<len; i++) {ll d=__gcd(x[i],x[i-1]);a=gcd_sub(a,x[i]/d);b=gcd_sub(b,x[i-1]/d);}printf("%ld/%ld",a,b);}return 0;
}

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

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

相关文章

SpringBoot 定时任务实践、定时任务按指定时间执行

Q1. springboot怎样创建定时任务&#xff1f; 很显然&#xff0c;人人都知道&#xff0c;Scheduled(cron ".....") Q2. 如上所示创建了定时任务却未能执行是为什么&#xff1f; 如果你的cron确定没写错的话 cron表达式是否合法&#xff0c;可参考此处&#xff0c…

Android集成微信支付

官方api&#xff1a;Android接入指南 | 微信开放文档 打开微信开放平台登录账户后点击创建应用 根据提示填写完相应的内容提交审核通过后&#xff0c;需要开通支付权限。 1.接着在你的项目工程build.gradle文件中添加微信支付依赖库 ​api com.tencent.mm.opensdk:wechat-sdk…

python代码使用过程中使用快捷键注释时报错

1.代码 2.代码报错 3.代码注释后的结果 4. 原因

sql注入方式之联合注入

1.1 靶场环境 系统centos7 IP地址192.168.1.24 1.2 联合注入原理 联合查询注入是联合两个表进行注入攻击&#xff0c;使用关键词 union select 对两个表进行联合查询。两个表的字段要数要相同&#xff0c;不然会出现报错。 1.3 找注入点 找注入点&#xff0c;当输入id1 an…

C语言——文件管理

文件&#xff1a;即磁盘上的文件&#xff0c;使用文件可以将数据直接存放在电脑的硬盘上&#xff0c;做到数据持久化。 在程序设计中&#xff0c;按文件的功能划分&#xff0c;将文件分为程序文件与数据文件 程序文件 程序文件包括源文件&#xff08;.c&#xff09;&#xff0…

Centos7搭建 Skywalking 单机版

介绍 Skywalking是应用性能监控平台&#xff0c;可用于分布式系统&#xff0c;支持微服务、云原生、Docker、Kubernetes 等多种架构场景。 整体架构如图 Agent &#xff1a;在应用中&#xff0c;收集 Trace、Log、Metrics 等监控数据&#xff0c;使用 RPC、RESTful API、Kafk…

【算法详解】二分查找

1. 二分查找算法介绍 「二分查找算法&#xff08;Binary Search Algorithm&#xff09;」&#xff1a;也叫做 「折半查找算法」、「对数查找算法」。是一种在有序数组中查找某一特定元素的搜索算法。 基本算法思想&#xff1a;先确定待查找元素所在的区间范围&#xff0c;在逐步…

骨传导耳机哪个品牌质量比较好?精选六大必看的耳机选购指南

骨传导耳机&#xff0c;是作为近年来深受消费者喜欢的蓝牙耳机产品&#xff0c;目前已经成为了热度最高的骨蓝牙耳机。然而&#xff0c;随着骨传导耳机的热度增高&#xff0c;市场上开始出现一些质量参差不齐、音质不佳的劣质产品&#xff0c;如果使用这些劣质产品的话&#xf…

C语言从入门到实战————文件操作

目录 前言 1. 为什么使用文件&#xff1f; 2. 什么是文件&#xff1f; 2.1 程序文件 2.2 数据文件 2.3 文件名 3. ⼆进制文件和文本文件&#xff1f; 4. 文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 文件的打开和关闭 5. 文…

SVG使用记录

<g>标签用于将多个形状组成一个组&#xff08;group&#xff09;&#xff0c;方便复用。 <defs>标签用于自定义形状&#xff0c;它内部的代码不会显示&#xff0c;仅供引用。 view0SVG.select(.svg-pan-zoom_viewport).get(0); view0.c…

nuxt3 使用$fetch封装(typescript)客户端使用的http请求方法

nuxt3提供了usefetch()之类的方法来发起请求&#xff0c;他提供的这些方法貌似都是考虑和server端配合使用的&#xff0c;比如说在页面初始化前&#xff0c;有些数据是由后端提供&#xff0c;但是为了按SSR来渲染页面&#xff0c;就可以使用usefetch()来配合server先从后端获取…

基于java+springboot+vue实现的旅游管理系统(文末源码+Lw)23-234

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统旅游管理系统信息管理难度大&#xff0c;容错率低&#…

使用yolov8实现自动车牌识别(教程+代码)

该项目利用了一个被标记为“YOLOv8”的目标检测模型&#xff0c;专门针对车牌识别任务进行训练和优化。整个系统通常分为以下几个核心步骤&#xff1a; 数据准备&#xff1a; 收集包含车牌的大量图片&#xff0c;并精确地标记车牌的位置和文本信息。数据集可能包含各种环境下的…

短剧小程序开发:解锁碎片时间的观影新风尚

随着移动互联网的飞速发展&#xff0c;人们对内容的消费方式也在不断升级。短剧作为一种新型的内容形态&#xff0c;正逐渐受到广大用户的青睐。为了满足用户随时随地观看短剧的需求&#xff0c;我们推出了全新的短剧小程序开发服务&#xff0c;为您解锁碎片时间的观影新风尚。…

C/C++中局部变量static用法实例

1. 普通局部变量存储于进程栈空间&#xff0c;使用完毕会立即释放&#xff0c;静态局部变量使用static修饰符定义&#xff0c;即使在声明时未赋初值&#xff0c;编译器也会把它初始化为0&#xff0c;并且静态局部变量存储于进程的全局数据区&#xff0c;即使函数返回&#xff0…

解密项目管理专业术语:十大名词背后的实战技巧

项目管理是一门综合学科&#xff0c;涵盖了一系列方法、技能和工具。今天为大家带来项目管理的十大专业术语&#xff0c;它们分别是项目范围、利益相关者管理、工作分解结构&#xff08;WBS&#xff09;、里程碑、风险管理、资源分配、关键路径法&#xff08;CPM&#xff09;、…

双向链表介绍

目录 1. 双向链表的结构 2. 双向链表的实现 初始化哨兵位&#xff1a; 打印链表&#xff1a; 尾插&#xff1a; 头插&#xff1a; 尾删&#xff1a; 头删&#xff1a; 查找&#xff1a; 在指定位置之后插入数据&#xff1a; 删除目标位置的数据&#xff1a; 销毁链…

星戈瑞Sulfo-Cyanine5-DBCO荧光标记的应用

Sulfo-Cyanine5-DBCO荧光标记化合物&#xff0c;它在生物科学和医学领域应用。由于它具有荧光信号和点击化学反应性&#xff0c;这使得它成为一种常见的标记工具&#xff0c;可用于追踪、标记和成像生物分子和细胞。 在生物医学研究中&#xff0c;Sulfo-Cyanine5-DBCO荧光标记常…

CAXA电子图版2020版 下载地址及安装教程

CAXA电子图板是一款由国内软件公司CAXA开发的专业CAD&#xff08;计算机辅助设计&#xff09;软件。它主要用于绘制和编辑各种类型的二维图纸和工程图纸&#xff0c;广泛应用于建筑、机械、电气和电子等行业。 CAXA电子图板具有以下主要功能和特点&#xff1a; 二维绘图&…

什么是自动化测试?深入了解其作用!

本文介绍了自动化测试的概念&#xff0c;以及为什么重要。自动化测试可以帮助你节省时间和金钱&#xff0c;并提高你的软件质量 自动化测试是指利用工具模拟人为操作&#xff0c;自动执行测试用例&#xff0c;并生成测试结果的过程。它是一种高效、准确、一致的测试方法&#…