發表於 CPEPythonUVA一顆星

【CPE】UVA 299 Train Swapping 一顆星 by Python 3.6

299 Train Swapping

簡易翻譯和條件:

題目我沒看 這題我只是用輸入輸出就開始寫了XD

不過成功後我有看一下題目,題意大致上是我們需要寫一個演算法交換貨物火車(是這樣翻嘛?)上的貨物,當排序好以後就可以使每一輛火車卸貨達到最大的效率。
然而交換貨物的方式只能跟隔壁的交換–以180度交換。

輸入輸出:

輸入會由一個 Case Number 開始
代表會有三筆測資

每一筆測資會有一個n獨自一行,和n個數字一行由空白隔開。

輸出是每筆測資一行輸出
格式如下~
Optimal train swapping takes {count} swaps.

這種交換方式就是 Bubble Sort 嘛~
如果有需要的話我可以在寒假寫一篇三個基本的 Sort 教學~
(Kotlin, Python, C++, NodeJS… etc)

這邊就不多說 Bubble Sort 是什麼啦~

下面提供簡單的 Python 寫法~

程式碼:

cases = int(input())

for case in range(cases):
    n = int(input())
    arr = []
    # 輸入題目的資料
    x = input()
    for xx in x.split():
        arr.append(int(xx))
    
    count = 0
    # Bubble Sort 
    for j in range(len(arr)):
        for i in range(len(arr)-1):
            if arr[i] > arr[i+1]:
                k = arr[i]
                arr[i] = arr[i+1]
                arr[i+1] = k
                count+=1 # 題目需要紀錄交換幾次,就紀錄再count裡面

    print(f"Optimal train swapping takes {count} swaps.") # 輸出題目要的Output
UVA 299

作者:

一位 熱愛資工領域、喜歡好笑事物、偶爾打打網球 的學生 ! For A Better Me!

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.