題解:洛谷 P2693 [USACO1.3] 號(hào)碼鎖 Combination Lock
本文分享的必刷題目是從藍(lán)橋云課、洛谷、AcWing等知名刷題平臺(tái)精心挑選而來并結(jié)合各平臺(tái)提供的算法標(biāo)簽和難度等級(jí)進(jìn)行了系統(tǒng)分類。題目涵蓋了從基礎(chǔ)到進(jìn)階的多種算法和數(shù)據(jù)結(jié)構(gòu)旨在為不同階段的編程學(xué)習(xí)者提供一條清晰、平穩(wěn)的學(xué)習(xí)提升路徑。歡迎大家訂閱我的專欄算法題解C與Python實(shí)現(xiàn)附上匯總貼算法競(jìng)賽備考沖刺必刷題C | 匯總【題目來源】洛谷P2693 [USACO1.3] 號(hào)碼鎖 Combination Lock - 洛谷【題目描述】農(nóng)夫約翰的奶牛不停地從他的農(nóng)場(chǎng)中逃出來導(dǎo)致了很多損害。為了防止它們?cè)偬映鰜硭I了一只很大的號(hào)碼鎖以防止奶牛們打開牧場(chǎng)的門。農(nóng)夫約翰知道他的奶牛很聰明所以他希望確保它們不會(huì)在簡(jiǎn)單地試了很多不同的號(hào)碼組合之后就能輕易開鎖。鎖上有三個(gè)轉(zhuǎn)盤每個(gè)上面有數(shù)字 1 ~n因?yàn)檗D(zhuǎn)盤是圓的所以 1 和n是相鄰的。有兩種能開鎖的號(hào)碼組合一種是農(nóng)夫約翰設(shè)定的還有一種“預(yù)設(shè)”號(hào)碼組合是鎖匠設(shè)定的。但是鎖有一定的容錯(cuò)性所以在每個(gè)轉(zhuǎn)盤上的數(shù)字都與一個(gè)合法的號(hào)碼組合中相應(yīng)的數(shù)字相距兩個(gè)位置以內(nèi)時(shí)鎖也會(huì)打開。比如說如果農(nóng)夫約翰的號(hào)碼組合是 1 , 2 , 3 )預(yù)設(shè)號(hào)碼組合是 4 , 5 , 6 )在轉(zhuǎn)盤被設(shè)定為 1 , 4 , 5)因?yàn)檫@和農(nóng)夫約翰的號(hào)碼組合足夠接近或 2 , 4 , 8 )因?yàn)檫@和預(yù)設(shè)號(hào)碼組合足夠接近時(shí)可以打開鎖。注意( 1 , 5 , 6 并不會(huì)打開鎖因?yàn)樗c任一號(hào)碼組合都不夠接近。給出農(nóng)夫約翰的號(hào)碼組合和預(yù)設(shè)號(hào)碼組合請(qǐng)計(jì)算能夠開鎖的不同的號(hào)碼組合的數(shù)目。號(hào)碼是有序的所以 1 , 2 , 3 與 3 , 2 , 1 不同。【輸入】輸入的第一行是一個(gè)整數(shù)n代表鎖上的數(shù)字個(gè)數(shù)。輸入的第二行有三個(gè)整數(shù)x,y,z代表農(nóng)夫約翰的號(hào)碼組合。輸入的第三行有三個(gè)整數(shù)a,b,c代表預(yù)設(shè)的號(hào)碼組合?!据敵觥枯敵鲆恍幸粋€(gè)整數(shù)代表能夠開鎖的組合數(shù)目。【輸入樣例】50 1 2 3 5 6 7【輸出樣例】249【核心思想】問題分析給定三個(gè)轉(zhuǎn)盤的數(shù)字范圍[ 1 , n ] [1, n][1,n]環(huán)形相鄰1 和n nn相鄰以及兩個(gè)合法號(hào)碼組合( x , y , z ) (x, y, z)(x,y,z)和( a , b , c ) (a, b, c)(a,b,c)。鎖的容錯(cuò)規(guī)則為每個(gè)轉(zhuǎn)盤上的數(shù)字與任一合法組合中對(duì)應(yīng)位置數(shù)字的環(huán)形距離≤ 2 \leq 2≤2時(shí)鎖打開。求能開鎖的不同號(hào)碼組合數(shù)。算法選擇暴力枚舉由于n ≤ 100 n \leq 100n≤100三個(gè)轉(zhuǎn)盤的三重循環(huán)枚舉量最大為10 6 10^6106完全可行環(huán)形距離計(jì)算利用模運(yùn)算處理環(huán)形結(jié)構(gòu)計(jì)算兩個(gè)數(shù)字在環(huán)上的最短距離容斥思想分別判斷是否滿足約翰的組合或預(yù)設(shè)的組合滿足任一即可邏輯或關(guān)鍵步驟讀入數(shù)據(jù)n nn數(shù)字個(gè)數(shù)、約翰的組合( x , y , z ) (x, y, z)(x,y,z)、預(yù)設(shè)組合( a , b , c ) (a, b, c)(a,b,c)三重枚舉i , j , k i, j, ki,j,k分別從1 11到n nn枚舉三個(gè)轉(zhuǎn)盤的數(shù)字環(huán)形距離判斷對(duì)單個(gè)轉(zhuǎn)盤位置數(shù)字p pp與q qq的環(huán)形距離( p ? q n ) m o d n (p - q n) \bmod n(p?qn)modn或( q ? p n ) m o d n (q - p n) \bmod n(q?pn)modn取較小值條件( x ? i n ) m o d n ≤ 2 (x - i n) \bmod n \leq 2(x?in)modn≤2或( i ? x n ) m o d n ≤ 2 (i - x n) \bmod n \leq 2(i?xn)modn≤2表示i ii與x xx的環(huán)形距離≤ 2 \leq 2≤2組合判斷滿足約翰組合三個(gè)轉(zhuǎn)盤分別與( x , y , z ) (x, y, z)(x,y,z)的距離均≤ 2 \leq 2≤2邏輯與滿足預(yù)設(shè)組合三個(gè)轉(zhuǎn)盤分別與( a , b , c ) (a, b, c)(a,b,c)的距離均≤ 2 \leq 2≤2邏輯與滿足任一即可開鎖邏輯或統(tǒng)計(jì)答案滿足條件的組合數(shù)a n s ansans時(shí)間/空間復(fù)雜度時(shí)間復(fù)雜度O ( n 3 ) O(n^3)O(n3)三重循環(huán)枚舉所有組合空間復(fù)雜度O ( 1 ) O(1)O(1)僅需常數(shù)級(jí)變量環(huán)形枚舉的核心思想模運(yùn)算處理環(huán)形( p ? q n ) m o d n (p - q n) \bmod n(p?qn)modn消除了環(huán)形結(jié)構(gòu)的邊界問題將 1 和n nn的相鄰關(guān)系統(tǒng)一處理雙向距離取小兩個(gè)方向( p ? q n ) % n (p-qn)\%n(p?qn)%n和( q ? p n ) % n (q-pn)\%n(q?pn)%n分別表示順時(shí)針和逆時(shí)針距離滿足其一≤ 2 \leq 2≤2即表示在容錯(cuò)范圍內(nèi)容斥簡(jiǎn)化無需顯式計(jì)算并集直接用邏輯或判斷滿足約翰或滿足預(yù)設(shè)即可小規(guī)模暴力可行n ≤ 100 n \leq 100n≤100時(shí)n 3 10 6 n^3 10^6n3106在合理范圍內(nèi)無需復(fù)雜優(yōu)化適用于環(huán)形結(jié)構(gòu)、小范圍枚舉、多條件容斥類問題【解題思路】【算法標(biāo)簽】#普及- #模擬【代碼詳解】#includebits/stdc.husingnamespacestd;intn,x,y,z,a,b,c,ans0;intmain(){cinn;// 輸入ncinxyz;// 輸入約翰的號(hào)碼組合cinabc;// 輸入預(yù)設(shè)的號(hào)碼組合for(inti1;in;i){// 三個(gè)轉(zhuǎn)盤使用三個(gè)for循環(huán)for(intj1;jn;j){for(intk1;kn;k){if(((x-in)%n2||(i-xn)%n2)((y-jn)%n2||(j-yn)%n2)((z-kn)%n2||(k-zn)%n2)||((a-in)%n2||(i-an)%n2)((b-jn)%n2||(j-bn)%n2)((c-kn)%n2||(k-cn)%n2)){// 滿足轉(zhuǎn)盤向上或向下后的移動(dòng)次數(shù)需要小于等于2ans;// 方案數(shù)自增1}}}}coutansendl;// 輸出結(jié)果return0;}【運(yùn)行結(jié)果】50 1 2 3 5 6 7 249

相關(guān)新聞

免費(fèi)查AI率的5款工具實(shí)測(cè),先自查再降A(chǔ)I率,萬方檢測(cè)一次達(dá)標(biāo)。

免費(fèi)查AI率的5款工具實(shí)測(cè),先自查再降A(chǔ)I率,萬方檢測(cè)一次達(dá)標(biāo)。

免費(fèi)查AI率的5款工具實(shí)測(cè),先自查再降A(chǔ)I率,萬方檢測(cè)一次達(dá)標(biāo)。 你現(xiàn)在多半有這么一個(gè)糾結(jié):稿子寫完了,心里不踏實(shí),想先測(cè)一下 AI 率,但正式的檢測(cè)都要按字?jǐn)?shù)收費(fèi),一篇論文測(cè)下來不便宜。測(cè)吧&am…

2026/8/3 13:28:50 閱讀更多
題解:洛谷 P3650 [USACO1.3] 滑雪課程設(shè)計(jì)Ski Course Design

題解:洛谷 P3650 [USACO1.3] 滑雪課程設(shè)計(jì)Ski Course Design

本文分享的必刷題目是從藍(lán)橋云課、洛谷、AcWing等知名刷題平臺(tái)精心挑選而來,并結(jié)合各平臺(tái)提供的算法標(biāo)簽和難度等級(jí)進(jìn)行了系統(tǒng)分類。題目涵蓋了從基礎(chǔ)到進(jìn)階的多種算法和數(shù)據(jù)結(jié)構(gòu),旨在為不同階段的編程學(xué)習(xí)者提供一條清晰、平穩(wěn)的學(xué)習(xí)提升路徑。 歡迎大…

2026/8/3 13:28:50 閱讀更多
BLE400藍(lán)牙物聯(lián)網(wǎng)開發(fā)平臺(tái):從硬件解析到協(xié)議棧開發(fā)的完整指南

BLE400藍(lán)牙物聯(lián)網(wǎng)開發(fā)平臺(tái):從硬件解析到協(xié)議棧開發(fā)的完整指南

1. 項(xiàng)目概述:BLE400是什么,以及它為何值得關(guān)注 如果你正在物聯(lián)網(wǎng)、智能穿戴或者無線傳感領(lǐng)域折騰,最近可能頻繁聽到“BLE400”這個(gè)詞。它不是一個(gè)新潮的營(yíng)銷概念,而是一個(gè)實(shí)實(shí)在在的、基于低功耗藍(lán)牙技術(shù)的硬件開發(fā)平臺(tái)或模組型號(hào)…

2026/8/3 13:28:50 閱讀更多
從火影到國(guó)風(fēng)少女:用ControlNet精準(zhǔn)控構(gòu)漫畫分鏡的6種高階姿勢(shì),附可復(fù)用ControlNet權(quán)重包

從火影到國(guó)風(fēng)少女:用ControlNet精準(zhǔn)控構(gòu)漫畫分鏡的6種高階姿勢(shì),附可復(fù)用ControlNet權(quán)重包

更多請(qǐng)點(diǎn)擊: https://intelliparadigm.com 第一章:從火影到國(guó)風(fēng)少女:ControlNet漫畫分鏡生成全景導(dǎo)覽 ControlNet 作為 Stable Diffusion 生態(tài)中關(guān)鍵的條件控制模塊,正深刻重塑二次元內(nèi)容創(chuàng)作范式——它不再僅依賴文本提示&#…

2026/8/3 14:28:51 閱讀更多
為什么92%的AI設(shè)計(jì)師接不到單?3個(gè)致命認(rèn)知偏差+5分鐘自檢表(限前200名領(lǐng)取診斷工具)

為什么92%的AI設(shè)計(jì)師接不到單?3個(gè)致命認(rèn)知偏差+5分鐘自檢表(限前200名領(lǐng)取診斷工具)

更多請(qǐng)點(diǎn)擊: https://kaifayun.com 第一章:AI設(shè)計(jì)接單的底層邏輯與行業(yè)真相 AI設(shè)計(jì)接單并非單純的技術(shù)交付,而是技術(shù)能力、商業(yè)認(rèn)知與用戶心理的三維耦合。其底層邏輯根植于“需求可建模性”——即客戶提出的問題是否能被結(jié)構(gòu)化為提示工程、…

2026/8/3 14:28:51 閱讀更多
ESP32網(wǎng)頁控制與實(shí)時(shí)數(shù)據(jù)顯示:從HTTP到WebSocket的物聯(lián)網(wǎng)實(shí)踐

ESP32網(wǎng)頁控制與實(shí)時(shí)數(shù)據(jù)顯示:從HTTP到WebSocket的物聯(lián)網(wǎng)實(shí)踐

1. 從零到一:為什么ESP32是網(wǎng)頁控制顯示的“天選之子” 如果你玩過Arduino,想給項(xiàng)目加個(gè)屏幕顯示數(shù)據(jù),大概率會(huì)經(jīng)歷一番折騰:要么屏幕引腳不夠用,要么刷新率上不去,要么想遠(yuǎn)程看看數(shù)據(jù)還得額外接個(gè)Wi-Fi模塊…

2026/8/3 14:28:51 閱讀更多
云計(jì)算如何革新數(shù)據(jù)科學(xué)工作流

云計(jì)算如何革新數(shù)據(jù)科學(xué)工作流

1. 為什么數(shù)據(jù)科學(xué)需要擁抱云計(jì)算? 十年前我剛?cè)胄袛?shù)據(jù)科學(xué)時(shí),團(tuán)隊(duì)還在用單機(jī)跑Python腳本處理幾十GB的數(shù)據(jù)。記得有次跑一個(gè)推薦算法模型,我的ThinkPad筆記本連續(xù)運(yùn)轉(zhuǎn)了72小時(shí)后終于藍(lán)屏崩潰,一周的工作成果全部付諸東流。這種痛…

2026/8/3 14:18:51 閱讀更多
全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

更多請(qǐng)點(diǎn)擊: https://kaifayun.com 第一章:全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎概覽 名片AI引擎是企業(yè)級(jí)智能文檔處理的核心組件,專注于高精度OCR、語義結(jié)構(gòu)化提取與跨語言實(shí)體對(duì)齊。截至2024年第三季度,全球范圍內(nèi)僅…

2026/8/3 0:07:47 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書,視頻號(hào)上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/3 7:44:46 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多