2025山東CCPC題解

文章目錄

  • L - Stella
  • D - Distributed System
  • I - Square Puzzle
  • E - Greatest Common Divisor
  • G - Assembly Line

L - Stella

題目來源:L - Stella
在這里插入圖片描述

解題思路
簽到題,因為給出的字母不是按順序,可以存起來賦其值,然后在比較。

代碼實現

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e5+5;
void solve()
{map<char,int>mp;mp['O']=1;mp['B']=2;mp['A']=3;mp['F']=4;mp['G']=5;mp['K']=6;mp['M']=7;string s1,s2;cin>>s1>>s2;if(mp[s1[0]]<mp[s2[0]]){cout<<"hotter"<<endl;return ;}else if(mp[s1[0]]>mp[s2[0]]){cout<<"cooler"<<endl;return ;}else{if(s1[1]<s2[1]){cout<<"hotter"<<endl;return ;}else if(s1[1]>s2[1]){cout<<"cooler"<<endl;return ;}else{cout<<"same"<<endl;return ;}}
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve(); return 0;
} 

D - Distributed System

題目來源:D - Distributed System
在這里插入圖片描述

解題思路
這道題主要考察個差分的算法,如果不考慮mod n的情況就把數組第i項和第i+n項最后加起來,題目意思是第0到ai-1項每次都會增加1,當然不能遍歷著去加,所以就用一個前綴和數組記錄改變的情況,最后利用前綴和公式求出即可。
代碼實現

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e6+5;
int n,q,ans[N],b[N],k,x,y;
void solve()
{cin>>n>>q;vector<int>a(2*n+10,0);int sum=0;while(q--){cin>>x>>y;sum+=x/n;x%=n;a[y]++;a[y+x]--;}ans[0]=a[0];for(int i=1;i<n*2;i++)ans[i]=ans[i-1]+a[i];for(int i=0;i<n;i++)cout<<ans[i]+ans[i+n]+sum<<" ";cout<<endl;
}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve(); return 0;
} 

I - Square Puzzle

題目來源:I - Square Puzzle
在這里插入圖片描述
在這里插入圖片描述

解題思路
這題沒有什么規律,讀完題后可以知道,一共就7種操作:右移第一行,右移第二行,右移第三行,下移第一列,下移第二列,下移第三列,順時針旋轉90度。因為只是三乘三的九宮格,將所有方式遍歷一遍也一定不會超時,所以可以用廣搜遍歷每一種情況,然后將沒種情況是否符合,如果符合看需要多少步,最終取最小,如果沒有符合輸出-1.

代碼實現

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e6+5;
map<string,int>ans;
queue<string>q;
string youyi(string a,int op)//右移函數 
{if(op==1){char t=a[0];a[0]=a[2],a[2]=a[1],a[1]=t;return a;}if(op==2){char t=a[3];a[3]=a[5],a[5]=a[4],a[4]=t;return a;}if(op==3){char t=a[6];a[6]=a[8],a[8]=a[7],a[7]=t;return a;}
}
string xiayi(string a,int op)//下移函數 
{if(op==1){char t=a[0];a[0]=a[6],a[6]=a[3],a[3]=t;return a;} if(op==2){char t=a[1];a[1]=a[7],a[7]=a[4],a[4]=t;return a;}if(op==3){char t=a[2];a[2]=a[8],a[8]=a[5],a[5]=t;return a;}
} 
string xuanzhuan(string a)//順時針旋轉函數 
{char t=a[0];a[0]=a[6],a[6]=a[8],a[8]=a[2],a[2]=t;t=a[1];a[1]=a[3],a[3]=a[7],a[7]=a[5],a[5]=t;return a;
}
void bfs()
{q.push("123456789");ans["123456789"]=0;while(q.size()){string g=q.front();q.pop();string t;t=youyi(g,1);if(ans[t]==0) q.push(t),ans[t]=ans[g]+1;t=youyi(g,2);if(ans[t]==0 )q.push(t),ans[t]=ans[g]+1;t=youyi(g,3);if(ans[t]==0) q.push(t),ans[t]=ans[g]+1;t=xiayi(g,1);if(ans[t]==0) q.push(t),ans[t]=ans[g]+1;t=xiayi(g,2);if(ans[t]==0) q.push(t),ans[t]=ans[g]+1;t=xiayi(g,3);if(ans[t]==0) q.push(t),ans[t]=ans[g]+1;t=xuanzhuan(g);if(ans[t]==0) q.push(t),ans[t]=ans[g]+1; }
}
void solve()
{string s;map<char,char>mp;for(int i=1;i<=9;i++){char ch;cin>>ch;mp[ch]='0'+i;}for(int i=1;i<=9;i++){char ch;cin>>ch;s+=mp[ch];}if(s=="123456789")cout<<"0"<<endl;else if(ans[s]==0)cout<<-1<<endl;else cout<<ans[s]<<endl;
}
signed main()
{IOS;bfs(); int _=1;cin>>_;while(_--)solve(); return 0;
} 

E - Greatest Common Divisor

題目來源:E - Greatest Common Divisor
在這里插入圖片描述

解題思路
首先,答案一定是s=
∑ai+k的因數。因此對s因數分解,然后在因數中枚舉答案x。
為了讓答案為x,需要把每個ai增加到最近的x的倍數,剩下的操作次數還需要被x整除。如果x≤maxai,那么每x種數都要增加到同一個數,可以
一起計算。這種情況的復雜度為調和級數O(maxai logmaxai)。
如果x>maxai,那么所有數都增加到同一個數,直接O(1)計算。
整體復雜度O(n+√s+f(s)+maxai logmaxai),其中
f(s)≈6×103是因數個數。
代碼實現
在這里插入圖片描述
在這里插入圖片描述

G - Assembly Line

題目來源:G - Assembly Line
在這里插入圖片描述
在這里插入圖片描述

解題思路
題目意思是k名工人加工n個工件,第i個工件在第ti分鐘加入工人wi的收件箱,每分鐘工人在自己的收件箱拿出一個工件,完成加工后放入下
一個工人的收件箱(如果是最后一個工人則加工完成)。問
所有工件加工完成需要幾分鐘
工件i原本的結束時間是(ti+k?wi),但每個時間點只能完成一個工件。
因此設ai表示從小到大排序后的工件完成時間,依次進行
更新ai←max(ai,ai?1+1)即可。復雜度O(nlogn)。
代碼實現

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e6+5;
int n,k,w,t,a[N];void solve()
{cin>>n>>k;for(int i=1;i<=n;i++){cin>>w>>t;a[i]=k-w+t;}sort(a+1,a+1+n);for(int i=1;i<=n;i++)a[i]=max(a[i],a[i-1]+1);cout<<a[n]<<endl;}
signed main()
{IOS;int _=1;cin>>_;while(_--)solve(); return 0;
} 

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

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

相關文章

某航參數逆向及設備指紋分析

文章目錄 1. 寫在前面2. 接口分析3. 加密分析4. 算法還原5. 設備指紋風控分析與繞過 【&#x1f3e0;作者主頁】&#xff1a;吳秋霖 【&#x1f4bc;作者介紹】&#xff1a;擅長爬蟲與JS加密逆向分析&#xff01;Python領域優質創作者、CSDN博客專家、阿里云博客專家、華為云享…

Python訓練營---Day41

DAY 41 簡單CNN 知識回顧 數據增強卷積神經網絡定義的寫法batch歸一化&#xff1a;調整一個批次的分布&#xff0c;常用與圖像數據特征圖&#xff1a;只有卷積操作輸出的才叫特征圖調度器&#xff1a;直接修改基礎學習率 卷積操作常見流程如下&#xff1a; 1. 輸入 → 卷積層 …

【Netty系列】Reactor 模式 2

目錄 流程圖說明 關鍵流程 以下是 Reactor 模式流程圖&#xff0c;結合 Netty 的主從多線程模型&#xff0c;幫助你直觀理解事件驅動和線程分工&#xff1a; 流程圖說明 Clients&#xff08;客戶端&#xff09; 多個客戶端&#xff08;Client 1~N&#xff09;向服務端發起連…

前端開發中 <> 符號解析問題全解:React、Vue 與 UniApp 場景分析與解決方案

前端開發中 <> 符號解析問題全解&#xff1a;React、Vue 與 UniApp 場景分析與解決方案 在前端開發中&#xff0c;<> 符號在 JSX/TSX 環境中常被錯誤解析為標簽而非比較運算符或泛型&#xff0c;導致語法錯誤和邏輯異常。本文全面解析該問題在不同框架中的表現及解…

【Web應用】 Java + Vue 前后端開發中的Cookie、Token 和 Swagger介紹

文章目錄 前言一、Cookie二、Token三、Swagger總結 前言 在現代的 web 開發中&#xff0c;前后端分離的架構越來越受到歡迎&#xff0c;Java 和 Vue 是這一架構中常用的技術棧。在這個過程中&#xff0c;Cookie、Token 和 Swagger 是三個非常重要的概念。本文將對這三個詞進行…

投稿Cover Letter怎么寫

Cover Letter控制在一頁比較好&#xff0c;簡短有力地推薦你的文章。 Dear Editors: Small objects detection in remote sensing field remains several challenges, including complex backgrounds, limited pixel representation, and dense object distribution, which c…

創建型設計模式之Prototype(原型)

創建型設計模式之Prototype&#xff08;原型&#xff09; 摘要&#xff1a; Prototype&#xff08;原型&#xff09;設計模式通過復制現有對象來創建新對象&#xff0c;避免重復初始化操作。該模式包含Prototype接口聲明克隆方法、ConcretePrototype實現具體克隆邏輯&#xff…

spark在執行中如何選擇shuffle策略

目錄 1. SortShuffleManager與HashShuffleManager的選擇2. Shuffle策略的自動選擇機制3. 關鍵配置參數4. 版本差異(3.0+新特性)5. 異常處理與調優6. 高級Shuffle服務(CSS)1. SortShuffleManager與HashShuffleManager的選擇 SortShuffleManager:默認使用,適用于大規模數據…

AUTOSAR圖解==>AUTOSAR_EXP_AIADASAndVMC

AUTOSAR高級駕駛輔助系統與車輛運動控制接口詳解 基于AUTOSAR R22-11標準的ADAS與VMC接口規范解析 目錄 1. 引言2. 術語和概念說明 2.1 坐標系統2.2 定義 2.2.1 乘用車重心2.2.2 極坐標系統2.2.3 車輛加速度/推進力方向2.2.4 傾斜方向2.2.5 方向盤角度2.2.6 道路變量2.2.7 曲率…

26考研——文件管理_文件目錄(4)

408答疑 文章目錄 二、文件目錄1、目錄的作用與結構1.1、目錄的基本概念1.2、目錄的組織形式1.2.1、單級目錄結構1.2.2、兩級目錄結構1.2.3、多級&#xff08;樹形&#xff09;目錄結構1.2.4、無環圖目錄結構 1.3、目錄的實現方式1.3.1、線性列表1.3.2、哈希表 2、文件共享與鏈…

Maven 項目中集成數據庫文檔生成工具

在 Maven 項目中&#xff0c;可以通過集成 數據庫文檔生成工具&#xff08;如 screw-maven-plugin、mybatis-generator 或 liquibase&#xff09;來自動生成數據庫文檔。以下是使用 screw-maven-plugin&#xff08;推薦&#xff09;的完整配置步驟&#xff1a; 1. 添加插件配置…

WebSocket指數避讓與重連機制

1. 引言 在現代Web應用中&#xff0c;WebSocket技術已成為實現實時通信的重要手段。與傳統的HTTP請求-響應模式不同&#xff0c;WebSocket建立持久連接&#xff0c;使服務器能夠主動向客戶端推送數據&#xff0c;極大地提升了Web應用的實時性和交互體驗。然而&#xff0c;在實…

本地部署AI工作流

&#x1f9f0; 主流 RAG / 工作流工具對比表&#xff08;含是否免費、本地部署支持與資源需求&#xff09; 工具名類型是否支持 RAG可視化目標用戶是否免費支持本地部署本地部署一般配置Dify企業級問答系統平臺??非技術 & 企業用戶? 免費版 商業版? 支持2C4G 起&…

React 第五十節 Router 中useNavigationType的使用詳細介紹

前言 useNavigationType 是 React Router v6 提供的一個鉤子&#xff0c;用于確定用戶如何導航到當前頁面。 它提供了關于導航類型的洞察&#xff0c;有助于優化用戶體驗和實現特定導航行為。 一、useNavigationType 核心用途 1.1、檢測導航方式&#xff1a; 判斷用戶是通過…

4.2.3 Spark SQL 手動指定數據源

在本節實戰中&#xff0c;我們學習了如何在Spark SQL中手動指定數據源以及如何使用format()和option()方法。通過案例演示&#xff0c;我們讀取了不同格式的數據文件&#xff0c;包括CSV、JSON&#xff0c;并從JDBC數據源讀取數據&#xff0c;展示了如何將這些數據轉換為DataFr…

【AUTOSAR OS】計數器Counter機制解析:定義、實現與應用

一、Counter的定義與作用 在AUTOSAR Classic Platform&#xff08;CP&#xff09;中&#xff0c;**Counter&#xff08;計數器&#xff09;**是系統實現時間管理的核心組件&#xff0c;用于測量時間間隔、觸發報警&#xff08;Alarm&#xff09;和調度表&#xff08;Schedule …

在機器視覺測量和機器視覺定位中,棋盤格標定如何影響精度

棋盤格標定是機器視覺(尤其是基于相機的系統)中進行相機內參(焦距、主點、畸變系數)和外參(相機相對于世界坐標系的位置和姿態)標定的經典且廣泛應用的方法。它的質量直接、顯著且多方面地影響最終的視覺測量和定位精度。 以下是棋盤格標定如何影響精度的詳細分析: 標定…

SOC-ESP32S3部分:21-非易失性存儲庫

飛書文檔https://x509p6c8to.feishu.cn/wiki/QB0Zw7GLeio4l4kyaWQcuQT3nZS 非易失性存儲 (NVS) 庫主要用于在 flash 中存儲鍵值格式的數據。 它允許我們在芯片的閃存中存儲和讀取數據&#xff0c;即使在斷電后&#xff0c;這些數據也不會丟失。 NVS 是 ESP32 flash&#xff…

讓大模型看得見自己的推理 — KnowTrace結構化知識追蹤

讓大模型“看得見”自己的推理 —— KnowTrace 結構化知識追蹤式 RAG 全解析 一句話概括:把檢索-推理“改造”成 動態知識圖構建任務,再讓 LLM 只關注這張不斷精煉的小圖 —— 這就是顯式知識追蹤的核心價值。 1. 背景:為什么 RAG 仍難以搞定多跳推理? 長上下文負擔 傳統 I…

新版智慧景區信息化系統解決方案

該智慧景區信息化系統解決方案以云 + 大數據 + 物聯網技術為核心,秉持 “匯聚聯合,突顯數據隱性價值” 理念,通過數據融合、業務融合、技術融合,構建 “營銷、服務、管理” 三位一體模式。方案涵蓋智慧票務、智能入園、精準營銷、景區管理(如用電安全監測、森林防火、客流…