国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

交換瓶子【第七屆】【省賽】【A組】

這篇具有很好參考價值的文章主要介紹了交換瓶子【第七屆】【省賽】【A組】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目描述

有N個瓶子,編號 1 ~ N,放在架子上。

比如有5個瓶子:
2 1 3 5 4

要求每次拿起2個瓶子,交換它們的位置。
經(jīng)過若干次后,使得瓶子的序號為:
1 2 3 4 5

對于這么簡單的情況,顯然,至少需要交換2次就可以復(fù)位。

如果瓶子更多呢?你可以通過編程來解決。

輸入輸出

輸入格式為兩行:
第一行: 一個正整數(shù)N(N<10000), 表示瓶子的數(shù)目
第二行:N個正整數(shù),用空格分開,表示瓶子目前的排列情況。

輸出數(shù)據(jù)為一行一個正整數(shù),表示至少交換多少次,才能完成排序。

例如,輸入:
5
3 1 2 5 4

程序應(yīng)該輸出:
3

再例如,輸入:
5
5 4 3 2 1

程序應(yīng)該輸出:
2

資源約定

峰值內(nèi)存消耗 < 256M
CPU消耗 < 3000ms

思路

這題思路很巧妙,我們可以將其轉(zhuǎn)化為圖論的問題求解。
首先建圖,因為是1~N的,所以將a[i]指向a[a[i]],例如第一個樣例。

5
3 1 2 5 4

轉(zhuǎn)化成圖就行如下所示。
交換瓶子【第七屆】【省賽】【A組】,藍橋杯真題,算法,c++,藍橋杯
排好之后的圖是這樣的。
交換瓶子【第七屆】【省賽】【A組】,藍橋杯真題,算法,c++,藍橋杯
所以我們的目的就是將上面的兩個環(huán),變成下面的五個環(huán)。每次交換兩個點,其實就是改變了兩條邊的指向。比如交換3和2,就變成了2 1 3 5 4。新圖就變成了:
交換瓶子【第七屆】【省賽】【A組】,藍橋杯真題,算法,c++,藍橋杯
其實就是將一個環(huán)變成了兩個環(huán)。每一次這樣的交換都會導致上述結(jié)果。那么我們最終是要有 n n n 個環(huán)。所以我們只需要求出給出的數(shù)據(jù)有多少環(huán),然后讓 n n n 減去環(huán)的數(shù)量,就是最少的交換次數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-836623.html

代碼

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 10010;

int n;
int a[N];
bool st[N];

int main()
{
    cin >> n;
    for ( int i = 1; i <= n; i ++ ) cin >> a[i];
    
    int k = 0;
    
    for ( int i = 1; i <= n; i ++ )
        if ( !st[i] )
        {
            k ++;
            for ( int j = i; !st[j]; j = a[j] )
                st[j] = true;
        }
    cout << n - k << endl;
    
    return 0;
}

到了這里,關(guān)于交換瓶子【第七屆】【省賽】【A組】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【藍橋杯】歷屆真題 楊輝三角形 (省賽)Java

    【藍橋杯】歷屆真題 楊輝三角形 (省賽)Java

    【問題描述】 ????????下面的圖形是著名的楊輝三角形: 如果我們按從上到下、從左到右的順序把所有數(shù)排成一列,可以得到如下數(shù)列: ????????1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,... ????????給定一個正整數(shù)N,請你輸出數(shù)列中第一次出現(xiàn)Ⅳ是在第幾個數(shù)? 【輸入

    2024年02月02日
    瀏覽(21)
  • 第14屆藍橋杯C++省賽(初級)真題

    第14屆藍橋杯C++省賽(初級)真題

    一、選擇題(50分) 第 1 題 單選題(10分) C++中,bool類型的變量占用字節(jié)數(shù)為 ( )。 *選擇題嚴禁使用程序驗證,選擇題不答或答錯都不扣分 A.1 B.2 C.3 D.4 第 2 題 單選題(10分) 以下關(guān)于C++結(jié)構(gòu)體的說法,正確的是 ( )。 *選擇題嚴禁使用程序驗證,選擇題不答或答錯都不扣分

    2024年02月05日
    瀏覽(21)
  • 2022藍橋杯沖刺(歷年真題剖析,含省賽、國賽)

    2022藍橋杯沖刺(歷年真題剖析,含省賽、國賽)

    大家好,我是莫若心,為了幫助兄弟們更好準備藍橋杯比賽,我特意選取了藍橋往年真題中許多能體現(xiàn)出藍橋經(jīng)典題型的題目,有需要的兄弟們可以收藏一下,后續(xù)我會繼續(xù)更新藍橋真題題型專欄,和大家一起沖擊藍橋杯 附上藍橋杯官網(wǎng)地址:藍橋杯官網(wǎng) ???? 題目如下 觀

    2023年04月08日
    瀏覽(26)
  • 【藍橋杯嵌入式】藍橋杯第十二屆省賽程序真題,真題分析與代碼講解

    【藍橋杯嵌入式】藍橋杯第十二屆省賽程序真題,真題分析與代碼講解

    ??【藍橋杯嵌入式】專題正在持續(xù)更新中,原理圖解析?,各模塊分析?以及歷年真題講解?都在這兒哦,歡迎大家前往訂閱本專題,獲取更多詳細信息哦?? ??【藍橋杯嵌入式】藍橋杯第十屆省賽真題 ??【藍橋杯嵌入式】藍橋杯第十三屆省賽程序真題 ??本系列專欄 - ?

    2023年04月15日
    瀏覽(97)
  • 【藍橋杯沖刺】藍橋杯12屆省賽C++b組真題-填空題

    【藍橋杯沖刺】藍橋杯12屆省賽C++b組真題-填空題

    目錄 試題A:空間 解題思路 答案 試題B:卡片 解題思路 答案 試題C:直線 解題思路 答案 試題D:貨物擺放 解題思路 答案 試題E:路徑 解題思路 答案 ?編輯 寫在最后: 小藍準備用 256 MB 的內(nèi)存空間開一個數(shù)組, 數(shù)組的每個元素都是 32 位二進制整數(shù), 如果不考慮程序占用的

    2024年02月03日
    瀏覽(23)
  • 【藍橋杯沖刺】藍橋杯11屆省賽C++b組真題-編程題

    【藍橋杯沖刺】藍橋杯11屆省賽C++b組真題-編程題

    目錄 試題F:成績統(tǒng)計 解題思路: 代碼: 試題G:回文日期 解題思路: 代碼: 試題H:字串分值 解題思路: 代碼: ?試題I:平面切分 解題思路: 代碼: 試題J:字串排序 解題思路: 寫在最后: 【問題描述】 小藍給學生們組織了一場考試,卷面總分為 100 分, 每個學生的

    2024年02月02日
    瀏覽(22)
  • 【藍橋杯沖刺】藍橋杯11屆省賽C++b組真題-填空題

    【藍橋杯沖刺】藍橋杯11屆省賽C++b組真題-填空題

    目錄 試題A:門牌制作 解題思路: 答案: 試題B:既約分數(shù) 解題思路: 答案: 試題C:蛇形填數(shù) 解題思路: 答案: 試題D:跑步訓練 解題思路: 答案: 試題E:七段碼 解題思路: 答案: 寫在最后: 小藍要為一條街的住戶制作門牌號。 這條街一共有 2020 位住戶,門牌號從

    2023年04月19日
    瀏覽(34)
  • 【藍橋杯沖刺】藍橋杯12屆省賽C++b組真題-編程題

    【藍橋杯沖刺】藍橋杯12屆省賽C++b組真題-編程題

    目錄 試題F:時間顯示 解題思路 代碼 試題G:砝碼稱重 解題思路 代碼 試題H:楊輝三角 解題思路 代碼 試題I:雙向排序 解題思路 試題J:括號序列 解題思路 【問題描述】 小藍要和朋友合作開發(fā)一個時間顯示的網(wǎng)站。 在服務(wù)器上,朋友已經(jīng)獲取了當前的時間,用一個整數(shù)表

    2023年04月16日
    瀏覽(16)
  • 藍橋杯嵌入式第十屆省賽真題

    藍橋杯嵌入式第十屆省賽真題

    總的來說這題考點特別的少,邏輯也比我之前發(fā)的12屆的停車計費簡單得多,還是一樣 代碼結(jié)尾自取。完全免費 相對來說能從這題學到的。對我來說我覺得是 封裝一些“狀態(tài)”數(shù)組 。可以讓代碼的可讀性和復(fù)用性高很多。 思路其實很簡單,就是切換界面和獲取adc的值,并和

    2023年04月22日
    瀏覽(102)
  • 【藍橋杯嵌入式】藍橋杯嵌入式第十四屆省賽程序真題,真題分析與代碼講解

    【藍橋杯嵌入式】藍橋杯嵌入式第十四屆省賽程序真題,真題分析與代碼講解

    ???【藍橋杯嵌入式】專題正在持續(xù)更新中,原理圖解析?,各模塊分析?以及歷年真題講解?都已更新完畢,歡迎大家前往訂閱本專題?? ??【藍橋杯嵌入式】藍橋杯第十屆省賽真題 ??【藍橋杯嵌入式】藍橋杯第十二屆省賽程序真題 ??【藍橋杯嵌入式】藍橋杯第十三屆省

    2023年04月15日
    瀏覽(191)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包