【問題描述】
排序是一種很頻繁的計算任務。現在考慮最多只有三值的排序問題。乙個實際的例子是,當我們給某項競賽的優勝者按金銀銅牌排序的時候。在這個任務中可能的值只有三種1,2和3。我們用交換的方法把他排成公升序的。
寫乙個程式計算出,給定的乙個1,2,3組成的數字序列,排成公升序所需的最少交換次數。
【輸入格式】
第 1 行:獎牌個數 n。
第 2 行到第 n+1 行: 每行乙個數字,表示獎牌。共 n 行。(1..3)
【輸出格式】
共一行,乙個數字。表示排成公升序所需的最少交換次數。
【輸入樣例】
9 2
2 1
3 3
3 2 3 1
【輸出樣例】
【資料範圍】
1 <= n <= 1000
這道題就是一道標準的排序題,但要注意模擬的方式。
詳見**標註:
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn=1005;
const
int inf=200000000;
int a[maxn],n,d[maxn],c[maxn];
void init()
void work1()
swap(a[i],a[t]);
k++;
}printf("%d",k);
}int main()
USACO 2 1 3 三值的排序
排序是一種很頻繁的計算任務。現在考慮最多只有三值的排序問題。乙個實際的例子是,當我們給某項競賽的優勝者按金銀銅牌排序的時候。在這個任務中可能的值只有三種1,2和3。我們用交換的方法把他排成公升序的。寫乙個程式計算出,給定的乙個1,2,3組成的數字序列,排成公升序所需的最少交換次數。input for...
USACO月賽題解 第三講 排序
彙總見 這一部分的題目也很經典 第10題 重排乾草 restack 這種題要麼0分要麼滿分,和 訓練指南 的第一章例3幾乎一樣,通過代數分析將題目轉化 最後變成求中位數的題目,o n 還是o nlogn 隨意 bzoj裡出現了兩道和這題幾乎一樣的題目 錯了兩個點 修改資料型別 還是錯這兩個點 發現輸...
4 2三值排序 貪心
題目 排序是一種很頻繁的計算任務。乙個實際的例子是,當我們給某項競賽的優勝者按金銀銅牌排序的時候。在這個任務中可能的值只有三種1,2和3。我們用交換的方法把他排成公升序的。寫乙個程式計算出,計算出的乙個包括1 2 3三種值的數字序列,排成公升序所需的最少交換次數。輸入第1行為類別的數量n 1 n 1...