速通ACM省铜第五天 赋源码(MEX Count)

目录

引言:

MEX Count

        题意分析

        逻辑梳理

        代码实现

结语:


引言:

        本来,今天我是想着出俩题或三题题解的,但是在打第一题的时候就天塌了,导致今天就只搓了一道题,这题的难度在CF中为1300的水准,但我感觉这题的难度实则不止1300,因为前几天1400的题里,都没有遇到这么棘手的,可能是我数学方面的能力不足,以至于这题耗费我巨大心力,而且,最恶心的是,这题的题目翻译还翻译错了,导致我找错误找半天都没找出来,具体下面会讲,接下来,我们进入今天的题目讲解----------->

                ​​​​​​​        ​​​​​​​        ​​​​​​​        


MEX Count

        接下来,我们先来看题目

        题意分析

        这是题目的链接Problem - 2124C - Codeforces

        不想跳转的可看下图

        

        看完题目后,是不是很抽象,第一行就看不懂了,所以我又用了别的翻译插件来翻译这个题目,如图

        看这个翻译是不是很明显,就是ai可以整除ai+1,但好巧不巧,这个翻译也是错的,所以我遭不住了,题目的实际意思其实是,一个数组a,这个数组是i+1位置下的元素可以整除i位置下的元素

        那么,这个弄清楚后,后面的翻译就没问题了,很清晰,就是对a数组进行操作,给定一个变量x,然后对a数组中的元素乘任意个数的x,得到一个新的数组b

        题目输入的就是这个数组b,然后让我们求出可能得x中的任意一个值即可

        那么,题目就讲解完了,接下来我们进行逻辑梳理


        逻辑梳理

        首先,我们先来分析下a数组和b数组的区别

        同一个下标下,b数组的元素是由a数组元素乘上未知个x得到的,因为是对a数组的元素进行乘的操作,所以b数组整体的最大公因数肯定不会低于a数组的最大公因数

        我们再来思考下还有啥能找的现成的,那就还有相邻下标下a元素变成b元素的方式若不同对公因数的影响

        第一种 i 下标的a元素和 i+1下标下的a元素都不乘x,这时这俩个的公因数无变化

        第二种 i 下标的a元素乘了x,i+1下标下的a元素没乘x。或反之,这种情况下,俩个的公因数亦没有变化

        第三种 i和i+1下标下的a元素都乘了x,这时候,公因数就会变大了

        那么,通过这三种情况,我们先来假设第一种情况

        b数组如果本来就是a数组,那么这个时候因为a数组中临近的下一个元素总是他前面元素的倍数,所以我们可以从后往前进行遍历,通过一次次的迭代最小公约数,然后寻找最大公倍数来得到可能得x。讲起来很抽象,那么,我们来通过图文来理解

        如图。因为现在是第一种情况,所以a数组的数据即为b数组的数据,那么,我们将ai与ai+1的元素进行取最大公因数,得到的就是ai,然后我们再将上一次得到的最小公倍数与ai/现在的最大公因数 这俩个数进行求最小公倍数的操作得到一个新的最小公倍数(这个即到目前为止,不看前面的元素,可以使用的最小的x)

        这种我们可以把他当做是那种将一个大份的元素拆解成一个个小份的元素进行一次次演算,得到每次的最佳值,再用最佳值去进行操作即可,直到走到底部为止

        那为什么进行先前最小公倍数与ai/现在的最大公因数来求这次的最小公倍数这个操作得到的最小公倍数就是满足条件的值呢,那我们来徐徐道来

        先前的最小公倍数    即只管后面那些数组时,x的最小值

        ai/现在的最大公因数        即该下标下的这个元素的剩余的因数

        如果想要乘任意次来达到数据的变化条件,就需要得到上面俩个数据的最小公倍数,这样就可以使加上当前下标后的数组也满足使用x来达到现在的b数组

        所以就一路推下去就好了

        其余俩种情况也是同理,原理我上面也讲的差不多了,太过玄乎了,所以这里就不展开讲了,这个的逻辑是否完全准确我也没有把握,但是我把我能想到的情况都推敲了下,都没什么问题,代码也AC了,接下来,逻辑梳理讲完了,我们来进入代码实现的环节。 


             代码实现

                上面的逻辑理清楚后,代码实现其实就很简单了,只需要打一个求最大公约数的函数和一个求最小公倍数的函数就可以了,然后再循环里调用一下就好了,gcd函数为最大公约数,lcm函数为最小公倍数,求这俩个数的函数应该都会实现吧,这里就不讲了,接下来就上AC源代码啦

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
#include <vector>
using namespace std;int t;
long long a[600010];long long gcd(long long x, long long y)
{if (y == 0)return x;return gcd(y, x % y);
}long long lcm(long  long x,long long y)
{long long k = gcd(x, y);return x / k * y;
}void solve()
{long long Gcd = 0;long long Lcm = 1;int n;a[0] = 1;cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];}for (int i = n; i > 0; i--){Gcd = gcd(Gcd, a[i]);Lcm = lcm(Lcm, a[i] / Gcd);}cout << Lcm << endl;
}int main()
{cin >> t;while (t--){solve();}return 0;
}

        那么,这题就讲完啦

结语:

        今日算法讲解到此结束啦,希望对你们有所帮助,谢谢观看,如果觉得不错可以分享给朋友哟。但不得不说,这题是真的折磨,燃尽了,一个1300的题花的时间比2道1400的题还久

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

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

相关文章

【数据结构与算法-Day 27】堆的应用:从堆排序到 Top K 问题,一文彻底搞定!

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

企业即时通讯保障企业通讯安全,提升企业部门协作效率

在当今数字化转型的大潮中&#xff0c;企业即时通讯软件已从单纯的沟通工具&#xff0c;逐步演变为保障企业数据安全的核心基础设施。吱吱企业即时通讯软件通过“私有化部署全流程加密”的双重机制&#xff0c;为企业构建了一套集“通讯安全”与“部门协作”于一体的数字化解决…

《华为变革法:打造可持续进步的组织》读书笔记

推荐序一&#xff1a;变革是企业活下去的基础&#xff08;胡彦平&#xff09;华为前常务副总裁、变革指导委员会成员胡彦平在序言中强调&#xff0c;企业存续的核心命题是应对不确定性&#xff0c;而变革能力是破解这一命题的唯一答案。他以华为 30 余年的发展历程为例&#xf…

第二篇:排序算法的简单认识【数据结构入门】

排序算法的分类标准 时间复杂度分类 a. 简单排序算法&#xff1a;时间复杂度O(n)&#xff0c;冒泡排序、选择排序、插入排序&#xff1b; b. 高级排序算法&#xff1a;时间复杂度O(n logn)&#xff0c;快速排序、归并排序、堆排序&#xff1b; c. 线性排序算法&#xff1a;时间…

快速掌握Dify+Chrome MCP:打造网页操控AI助手

你是否曾经希望那些强大的开源大模型能更贴合你的专业领域&#xff0c;或者学会模仿你的行文风格&#xff1f;其实&#xff0c;实现这个目标的关键就在于“微调”。曾几何时&#xff0c;微调模型是大公司的专属游戏——动不动就需要几十张GPU和复杂的分布式训练技术。 而现在&…

单词记忆-轻松记忆10个实用英语单词(15)

1. repaint含义&#xff1a;重新油漆 读音标注&#xff1a;/ˌriːˈpeɪnt/ 例句&#xff1a;We need to repaint the walls after the repairs. 译文&#xff1a;修理完成后需要重新粉刷墙壁。 衍生含义&#xff1a;重新绘制&#xff08;图像场景&#xff09;&#xff1b;翻新…

visual studio快捷键

1.visual studio代码格式化快捷键 1.CtrlA&#xff08;全选&#xff09; 2.CtrlK 3.CtrlF2.多行注释 1.Ctrlk 2.Ctrlc2.多行取消注释 1.Ctrlk 2.Ctrlu

Django全栈班v1.04 Python基础语法 20250913 下午

练习&#xff1a;个人信息收集器 任务&#xff1a;创建一个个人信息收集和展示程序 要求&#xff1a; 收集用户的姓名&#xff0c;年龄&#xff0c;城市&#xff0c;爱好验证年龄输入&#xff0c;必须是正数格式化输出用户信息计算用户出生年份 name input("请输入姓名&a…

学习海康VisionMaster之字符缺陷检测

前言&#xff1a;差不多三个月没更新了&#xff0c;天天码代码&#xff0c;实在是太忙了&#xff0c;有时候也在想这么忙到底是不是工作方法的问题&#xff0c;怎么样才能变成大师呢&#xff01; 一&#xff1a;进一步学习 今天学习下VisionMaster中的字符缺陷检测&#xff1…

若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法

背景 最近使用若依4.8.1进行二次开发&#xff0c;接着尝试打包成war包进行部署&#xff0c;结果出现了404&#xff0c;提示“HTTP状态 404 - 未找到&#xff0c;请求的资源[/ruoyi-admin/]不可用”&#xff0c;翻了网上的教程&#xff0c;包括看了官方的解疑都没有说到该情况。…

华清远见25072班网络编程学习day6

重点内容&#xff1a;数据库基本概念:数据&#xff08;Data&#xff09;&#xff1a;能够输入计算机并能被计算机程序识别和处理的信息集合数据 &#xff08;Database&#xff09;数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合重要概念&#…

机器学习-网络架构搜索

Neural Architecture Search&#xff08;NAS&#xff09; 一个神经网络有不同类型的超参数 拓扑结构&#xff1a;resnet&#xff0c;mobilenet 单独层&#xff1a;核大小&#xff0c;卷积层的通道&#xff0c;输出隐藏单元的个数NAS自动设计神经网络 如何设计搜索空间 如何探索…

云手机在办公领域中自动化的应用

云手机在办公自动化领域正逐渐展现出强大的潜力&#xff0c;以下是其在办公中自动化应用的多方面介绍&#xff1a;企业借助云手机搭载的办公软件&#xff0c;可实现文档处理自动化&#xff0c;对于重复性文档任务&#xff0c;如制作每月固定格式的销售报告、财务报表等&#xf…

c++多线程(3)------休眠函数sleep_for和sleep_until

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 这两个函数都定义在 头文件中&#xff0c;属于 std::this_thread 命名空间&#xff0c;用于让当前线程暂停执行一段时间。函数功能sleep_for(rel_time)让当前线程休眠一段相对时间&…

Intel RealSense D455深度相机驱动安装与运行

Intel RealSense D455深度相机安装过程遇到过一些报错&#xff0c;所以记录一下安装过程&#xff01;&#xff01;&#xff01;以后方便回顾。 1.安装最新的IntelRealSense SDK2.0 (1) 注册服务器的公钥 sudo apt-get update && sudo apt-get upgrade && su…

从异步到半同步:全面解读MySQL复制的数据一致性保障方案

MySQL 主从复制&#xff08;Replication&#xff09;是其最核心的高可用性和扩展性功能之一。它的原理是将一个 MySQL 实例&#xff08;称为主库 Master&#xff09;的数据变更&#xff0c;自动同步到另一个或多个 MySQL 实例&#xff08;称为从库 Slave&#xff09;的过程。下…

PostgreSQL GIN 索引揭秘

文章目录什么是GIN Index?示例场景GIN Index的原理GIN Index结构MetapageEntriesLeaf PagesEntry page 和 Leaf page 的关系Posting list 和posting tree待处理列表&#xff08;Pending List&#xff09;进阶解读GIN index索引结构总结什么是GIN Index? GIN (Generalized In…

开源多模态OpenFlamingo横空出世,基于Flamingo架构实现图像文本自由对话,重塑人机交互未来

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》&#xff08;跟我一起学人工智能&#xff09;【陈敬雷编著】【清华大学出版社】 清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷…

电子衍射模拟:基于GPU加速的MATLAB/Julia实现

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;注册即送-H卡级别算力&#xff0c;80G大显存&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生更享专属优惠。 引言&#xff1a;电子衍射模拟的重要性与计算挑战 电子…

easyExcel动态应用案例

代码链接&#xff1a;https://download.csdn.net/download/ly1h1/919402991.案例说明&#xff1a;1.1.导入功能导入数据实现转换成 List<List<String>> headers和 List<List<String>> datas&#xff0c;后续补充可以与数据模型注解结合&#xff0c;形…