簡單廣搜...set好用..恩.
#include <cstdio> #include <iostream> #include <queue> #include <set> using namespace std; struct paipai{ int num; int step; }; queue<struct paipai>q; set<int> used; int a[5],b[5]; int T,from,to; void itoa(int n,int a[]) { for(int i=3;i>=0;i--) { a[i] = n%10; n/=10; } } int atoi(int a[]) { int sum = 0; for(int i=0;i<4;i++) { sum*=10; sum+=a[i]; } return sum; } void bfs() { used.clear(); used.insert(from); struct paipai now; now.num=from; now.step = 0; while(!q.empty()) q.pop(); q.push(now); now = q.front(); while(!q.empty()) { now= q.front(); q.pop(); if(now.num==to) { cout<<now.step<<endl; return ; } now.step++; for(int i=0;i<4;i++) { itoa(now.num,a); a[i]+=1; if(a[i]==10) a[i]=1; struct paipai tmp; tmp.num=atoi(a); tmp.step=now.step; if(!used.count(tmp.num)) { q.push(tmp); used.insert(tmp.num); } } for(int i=0;i<4;i++) { itoa(now.num,a); a[i]-=1; if(a[i]==0) a[i]=9; struct paipai tmp; tmp.num=atoi(a); tmp.step=now.step; if(!used.count(tmp.num)) { q.push(tmp); used.insert(tmp.num); } } for(int i=0;i<3;i++) { itoa(now.num,a); a[i]^=a[i+1]; a[i+1]^=a[i]; a[i]^=a[i+1]; struct paipai tmp; tmp.num=atoi(a); tmp.step=now.step; if(!used.count(tmp.num)) { q.push(tmp); used.insert(tmp.num); } } } } int main(void) { cin>>T; T=2; while(T--) { cin>>from>>to; //from = 1234;to = 2144; // from=1111;to=9999; bfs(); } return 0; }
二叉樹 「二叉樹 binary tree」是一種非線性數據結構,代表“祖先”與“後代”之間的派生關係,體現了“一分爲二” 的分治邏輯。與鏈表類似,二叉樹的基本單元是節點,每個節點包含值、左子節點引用和右子節點引用。 每個節點都有兩個引
這個作業屬於哪個課程 <a href="https://edu.cnblogs.com/campus/fzzcxy/SE" target="_blank" style="color: #0099ff; text-decoration:
本文分享自華爲雲社區《華爲雲CCE集羣增強型CPU管理策略enhanced-static》,作者: 可以交個朋友。 背景 開源Kubernetes默認提供的CPU管理策略有none和static兩種: none: 不開啓CPU管理策略,
EUROTHERM SN:FC1548002238 CUSTREF:4501175489/E Code: NANODAC/VH/C/X/RDD/XX/TS/SV/XXXXXENG/XXX/XXXXX/ XXXXXX/XX/NO
本文分享自華爲雲社區《GaussDB(DWS)安全管理之數據脫敏原理與使用方法介紹》,作者: VV一笑。 1. 前言 適用版本:8.2.0及以上版本 GaussDB (DWS)產品數據脫敏功能,是數據庫產品內化和夯實數據安全能力的重要
你的 VARCHAR 長度合適麼? 作者:官永強,愛可生 DBA 團隊成員,擅長 MySQL 運維方面的技能。熱愛學習新知識,亦是個愛打遊戲的宅男。 作者:李富強,愛可生 DBA 團隊成員,熟悉 MySQL,TiDB,OceanBase
「哈希表 hash table」,又稱「散列表」,它通過建立鍵 key 與值 value 之間的映射,實現高效的元素查詢。具體而言,我們向哈希表中輸入一個鍵 key ,則可以在 𝑂(1) 時間內獲取對應的值 value 。 從本質上看,哈
物理結構在很大程度上決定了程序對內存和緩存的使用效率,進而影響算法程序的整體性能。 由於存儲數據的需要長久保存,並且內存的價格比硬盤貴太多,因此內存無法取代硬盤。 緩存的大容量和高速度難以兼得。隨着 L1、L2、L3 緩存的容量逐步增大
帕魯私服的遊戲參數通常可通過配置文件 PalWorldSettings.ini 來進行修改,然而這個配置文件有個別參數對遊戲不生效,讓人很是頭疼。沒錯!我說的就是終端最大的帕魯數量! 其實還有另外一種更加高級的參數修改方式,那就是 Worl
「鏈表 linked list」是一種線性數據結構,其中的每個元素都是一個節點對象,各個節點通過“引用”相連接。 引用記錄了下一個節點的內存地址,通過它可以從當前節點訪問到下一個節點。 鏈表的設計使得各個節點可以分散存儲在內存各處,它們的內
如何使用pingora構建自己反向代理 Cloudflare開源了其基於rust構建的反向代理框架pingora,已經在Cloudflare的雲服務中實際使用,每秒支撐起超過4000萬個互聯網請求(需要注意,此處並不是性能指標)。pinga
解決問題:我有個舊的vue2的項目使用的事node的版本比較低才能使用,可是現在最新的react要求的node的版本必須是16起。 答:使用Node的管理工具(NVM ),可以自由切換不同的Node.js版本。 nvm (Node Vers
本文分享自華爲雲社區《基於OpenTelemetry實現Java微服務調用鏈跟蹤》,作者: 可以交個朋友。 一 背景 隨着業務的發展,所有的系統都會走向微服務化體系,微服務進行拆分後,服務的依賴關係變得複雜,如果出現了錯誤和異常,定位的過
前言 在上一篇文章《還在擔心報表不好做?不用怕,試試這個方法》中,小編分享瞭如何使用模板語言生成報表的過程。今天小編進一步介紹模板語言中一些基本的概念和用法,因此讀者可以配合上一篇文章一起看。 本文介紹的內容有: 模板文件 綁定數據源 單
用於衡量算法佔用內存空間隨着數據量變大時的增長趨勢。這個概念與時 間複雜度非常類似,只需將“運行時間”替換爲“佔用內存空間”。 算法在運行過程中使用的內存空間主要包括以下幾種。 ‧ 輸入空間:用於存儲算法的輸入數據。