速通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
英文地址,請注明出處:http://en.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;形…