速通ACM省銅第四天 賦源碼(G-C-D, Unlucky!)

目錄

?

引言:

G-C-D, Unlucky!

? ? ? ? 題意分析

? ? ? ? 邏輯梳理

? ? ? ? 代碼實現

結語:


?

引言:

? ? ? ? 因為今天打了個ICPC網絡賽,導致坐牢了一下午,沒什么時間打題目了,就打了一道題,所以,今天我們就只講一題了,該題是CF難度分值1400的題,今天應該是跟第一天一樣輕松的訓練量,那話不多說,我們進入題目講解————>

?????????????????????????????????????????????????????????????????????


G-C-D, Unlucky!

? ? ? ? 與先前一樣。我們先來看題目

? ? ? ? 題意分析

? ? ? ? 這是題目的鏈接Problem - E - Codeforces

? ? ? ? 不想跳轉的可以看下圖

????????

? ? ? ? 這個題目表達的意思其實是很簡單的,就是輸入2個數組,然后問是否存在一個數組a,滿足,第一個數組是a數組從前往后求公約數,第二個數組是a數組從后往前求公約數,那么,題目意思就說完了,接下來我們來梳理一下邏輯


? ? ? ? 邏輯梳理

? ? ? ? 首先一個是從前往后依次公約數的數組,這個數組的第一個一定是a數組的首元素

? ? ? ? 還有一個是從后往前依次公約數的數組,這個數組的最后一個元素一定是a數組的尾元素

? ? ? ? 這個是第一眼就能看出的東西,但我感覺對這題沒有什么用,但是,第一個數組的最后一個元素與第二個數組的首元素反而非常關鍵

? ? ? ? 因為第一個數組的末元素是將a數組全部進行求公約數,第二個數組的首元素是將a數組全部進行求公約數,只是一個是順著求,一個是逆著求

? ? ? ? 所以,若這個a數組存在,那么第一個數組的末元素和第二個數組的首元素一定要相等,這是第一個若要讓a數組存在需要滿足的條件

? ? ? ? 那么,接下來,因為第一個數組是從前往后求公約數,所以第一個數組從前往后要單調不遞增,因為第二個數組是從后往前求公約數,所以第二個數組從后往前要單調不遞增,即從前往后要單調不遞減,這是第二個若要讓a數組存在需要滿足的條件

? ? ? ? 然后,既然已經知道了數的變化順序,接下來,我們來看變化規律,因為是一步步公約數求下去的,所以對第一個數組而言,i+1位置上的數肯定是i位置上數的因數或本身而不能是其他的數,若是其他的數就不滿足依次求公約數的性質了

? ? ? ? 對第二個數組也同理,只是第二個數組是從后往前求公約數,所以i位置上的數肯定是i+1位置上的數的因數或者他本身而不能是其他的數

? ? ? ? 上邊的便是第三個若要讓a數組存在需要滿滿足的條件即第一個數組依次往后的數據要是他前一個數據的因數或本身,第二個數組依次往前的數據要是他后一個數據的因數或本身

? ? ? ? 還有一個就比較抽象了,這也是最難想的一個條件,這個條件我也想了好久,這個條件如圖

? ? ? ? 我們只需要通過一個循環求 下標為i的第一個數組的元素 和 下標為i+1的第二個數組的元素? 的最大公約數求出來判斷是否為第二個數組的第一個元素即可(因為這倆個元素求出來的公約數就是整個數組的公約數了)

? ? ? ? 那么,四個關鍵的條件就集齊啦,接下來我們就進入代碼實現的環節


? ? ? ? 代碼實現

? ? ? ? 邏輯已經講完了,接下來我們只需要用代碼將四個功能實現出來就可以了,那么具體我就不多講了,直接放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[100010];
long long b[100010];long long gcd(long long x, long long y)
{if (y == 0)return x;return gcd(y, x % y);
}void solve()
{int xixi = 0;int n;cin >> n;a[0] = 1e10;for (int i = 1; i <= n; i++){cin >> a[i];if (a[i] > a[i - 1])xixi = 1;}for (int i = 1; i <= n; i++){cin >> b[i];if (b[i] < b[i - 1])xixi = 1;}for (int i = 1; i < n; i++){if (a[i] % a[i + 1] || b[i + 1] % b[i]){xixi = 1;break;}if (gcd(a[i], b[i+1]) != b[1]){xixi = 1;break;}}if (n == 1 && a[1] == b[1]){cout << "Yes" << endl;return;}if (xixi || a[n] != b[1]){cout << "No" << endl;return;}cout << "Yes" << endl;
}int main()
{cin >> t;while (t--){solve();}return 0;
}

? ? ? ? 那么這道題就講完啦


結語:

????????今日算法講解到此結束啦,希望對你們有所幫助,謝謝觀看,如果覺得不錯可以分享給朋友喲

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96756.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96756.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96756.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據鏈路層總結

目錄 &#xff08;一&#xff09;以太網&#xff08;IEEE 802.3&#xff09; &#xff08;1&#xff09;以太網的幀格式 &#xff08;2&#xff09;幀協議類型字段 ①ARP協議 &#xff08;橫跨網絡層和數據鏈路層的協議&#xff09; ②RARP協議 &#xff08;二&#xff…

Scala 新手實戰三案例:從循環到條件,搞定基礎編程場景

Scala 新手實戰三案例&#xff1a;從循環到條件&#xff0c;搞定基礎編程場景 對 Scala 新手來說&#xff0c;單純記語法容易 “學完就忘”&#xff0c;而通過小而精的實戰案例鞏固知識點&#xff0c;是掌握語言的關鍵。本文精選三個高頻基礎場景 ——9 乘 9 乘法口訣表、成績等…

java學習筆記----標識符與變量

1.什么是標識符?Java中變量、方法、類等要素命名時使用的字符序列&#xff0c;稱為標識符。 技巧:凡是自己可以起名字的地方都叫標識符。 比如:類名、方法名、變量名、包名、常量名等 2.標識符的命名規則由26個英文字母大小寫&#xff0c;0-9&#xff0c;或$組成 數字不可以開…

AI產品經理面試寶典第93天:Embedding技術選型與場景化應用指南

1. Embedding技術演進全景解析 1.1 稀疏向量:關鍵詞匹配的基石 1.1.1 問:請說明稀疏向量的適用場景及技術特點 答:稀疏向量適用于關鍵詞精確匹配場景,典型實現包括TF-IDF、BM25和SPLADE。其技術特征表現為50,000+高維向量且95%以上位置為零值,通過余弦或點積計算相似度…

【Mermaid.js】從入門到精通:完美處理節點中的空格、括號和特殊字符

文章標簽&#xff1a; Mermaid, Markdown, 前端開發, 數據可視化, 流程圖 文章摘要&#xff1a; 你是否在使用 Mermaid.js 繪制流程圖時&#xff0c;僅僅因為節點文本里加了一個空格或括號&#xff0c;整個圖就渲染失敗了&#xff1f;別擔心&#xff0c;這幾乎是每個 Mermaid 新…

多技術融合提升環境生態水文、土地土壤、農業大氣等領域的數據分析與項目科研水平

一&#xff1a;空間數據獲取與制圖1.1 軟件安裝與應用1.2 空間數據介紹1.3海量空間數據下載1.4 ArcGIS軟件快速入門1.5 Geodatabase地理數據庫二&#xff1a;ArcGIS專題地圖制作2.1專題地圖制作規范2.2 空間數據的準備與處理2.3 空間數據可視化&#xff1a;地圖符號與注記2.4 研…

【音視頻】Android NDK 與.so庫適配

一、名詞解析 名詞全稱核心說明Android NDKNative Development Kit在SDK基礎上增加“原生”開發能力&#xff0c;支持使用C/C編寫代碼&#xff0c;用于開發需要調用底層能力的模塊&#xff08;如音視頻、加密算法等&#xff09;.so庫Shared Object即共享庫&#xff0c;由NDK編…

SpringBoot 輕量級一站式日志可視化與JVM監控

一、項目初衷Java 應用開發的同學都知道&#xff0c;項目上線后&#xff0c;日志的可視化查詢與 JVM 的可視化監控是一件非常重要的事。 市面上成熟方案一般是采用 ELK/EFK 實現日志可視化&#xff0c;采用 Actuator Prometheus Grafana 實現 JVM 監控。 這兩套都是非常優秀的…

【Leetcode hot 100】101.對稱二叉樹

問題鏈接 101.對稱二叉樹 問題描述 給你一個二叉樹的根節點 root &#xff0c; 檢查它是否軸對稱。 示例 1&#xff1a; 輸入&#xff1a;root [1,2,2,3,4,4,3] 輸出&#xff1a;true 示例 2&#xff1a; 輸入&#xff1a;root [1,2,2,null,3,null,3] 輸出&#xff1a;…

Zynq開發實踐(FPGA之選擇開發板)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】我們之所以選用zynq開發板&#xff0c;就在于它支持arm軟件開發&#xff0c;也支持fpga開發&#xff0c;甚至可以運行linux&#xff0c;這是之前沒有…

Flutter Riverpod 3.0 發布,大規模重構下的全新狀態管理框架

在之前的 《注解模式下的 Riverpod 有什么特別之處》我們聊過 Riverpod 2.x 的設計和使用原理&#xff0c;同時當時我們就聊到作者已經在開始探索 3.0 的重構方式&#xff0c;而現在隨著 Riverpod 3.0 的發布&#xff0c;riverpod 帶來了許多細節性的變化。 當然&#xff0c;這…

Xcode 上傳 ipa 全流程詳解 App Store 上架流程、uni-app 生成 ipa 文件上傳與審核指南

對于 iOS 開發者而言&#xff0c;應用開發完成后最重要的一步就是將應用打包為 ipa 文件&#xff0c;并上傳至 App Store Connect 進行分發或上架。 其中&#xff0c;Xcode 上傳 ipa 是最常見的方法&#xff0c;但很多開發者在實際操作中常常遇到卡住、上傳失敗或簽名錯誤等問題…

快速選中對象

圖片要求 圖片背景單純&#xff0c;對象邊緣比較清晰 對象選擇工具 選擇對象選擇工具后&#xff0c;畫出大致區域&#xff0c;系統將自動分析圖片內容&#xff0c;從而實現快速選擇圖片中的一個惑多個對象他有兩種模式&#xff0c;分別是舉行與套索模式。使用時可以先選中對象的…

點到點鏈路上的OSPF動態路由(2025年9月10日)

一、前言前面我們已經分享過了靜態路由、缺省路由、浮動靜態路由這些靜態路由的配置。接下來將會 陸陸續續開始分享動態路由以及其他路由配置。博主這里是一個新人&#xff0c;了解這些路由配置不是自上而下的&#xff0c;而是自下而上的&#xff0c;也就是說通過實驗去理解原理…

技術視界 | 末端執行器:機器人的“手”,如何賦予機器以生命?

在現代自動化系統中&#xff0c;末端執行器&#xff08;End Effector&#xff09;作為機器人與物理世界交互的“手”&#xff0c;發揮著至關重要的作用。它直接安裝在機械臂末端&#xff0c;不僅是機器人實現“抓取、感知和操作”三大核心功能的關鍵部件&#xff0c;更是整個自…

滑動窗口概述

滑動窗口算法簡介滑動窗口是一種用于處理數組或字符串子區間問題的高效算法。它通過維護一個動態窗口&#xff08;通常由兩個指針表示&#xff09;來避免重復計算&#xff0c;將時間復雜度從O(n)優化到O(n)。基本實現步驟初始化窗口指針&#xff1a;通常使用left和right指針表示…

AI 創建學生管理系統

使用騰訊元寶創建&#xff0c;整體效果不錯。修正2個bug跑起來&#xff0c;達到了需要的功能先上效果圖&#xff1a;按鈕分類別配色&#xff0c;界面清爽。喜歡這布局創建過程&#xff1a;prompt: 使用最新穩定vue版&#xff0c;使用pinia存儲&#xff0c;基于typescript, 樣式…

ASP.NET Core 中的簡單授權

ASP.NET Core 中的授權通過 [Authorize] 屬性及其各種參數控制。 在其最基本的形式中&#xff0c;通過向控制器、操作或 [Authorize] Page 應用 Razor 屬性&#xff0c;可限制為僅允許經過身份驗證的用戶訪問該組件。 使用 [Authorize] 屬性 以下代碼限制為僅允許經過身份驗證…

leetcode 493 翻轉對

一、題目描述 二、解題思路 本題的思路與逆序數的思路相似&#xff0c;采用歸并排序的思路來實現。leetcode LCR 170.交易逆序對的總數-CSDN博客 注意&#xff1a;但是逆序數的ret更新在左、右區間合并時更新&#xff0c;但本題ret更新在左、右區間合并前更新。 三、代碼實現…

初識微服務-nacos配置中心

配置中心 概述 配置中心是微服務中不可或缺的組件&#xff0c;因為如果沒有配置中心&#xff0c;那么各個微服務的的配置信息無法得到統一和管理&#xff0c;會變得冗余。 :::color4 配置中心是用于管理應用程序配置信息的工具 集中管理配置&#xff1a;解決微服務架構下配置分…