題目描述
有n(1≤n≤1000)頭奶牛,它們都被標上乙個優先等級編號:1,2或3。用來表示它們喝水時的優先次序,編號為l的最優先,編號為2的其次,編號為3的最後。每天奶牛開始時排成一行,但總是很亂,需要你把它們重新排成編號為1的奶牛在最前面,編號為2的其次,編號為3的奶牛在最後。你能計算出最少需要多少的交換次序來完成這次重排嗎?
輸入
第1行:1個整數n;
第2至n+i行:第i+l行有乙個整數表示開始佇列中第i頭奶牛的編號。
輸出
1行,只乙個整數,表示最少需要交換次數。
樣例輸入
9
2 2 1 3 3 3 2 3 1
樣例輸出
4
在讀入的時候記錄一下1 2 3
三個數的數目,然後就可以確定排完序之後他們的界限,然後從1的區域開始掃,掃到2就優先去2的區域找,找不到就去3的區域找,掃到3同理,這樣就能保證每一次交換都是最優的,將2區域掃完之後也就完成了所有的交換。
#include
using
namespace
std;
#define maxn 1007
int a[maxn],b[maxn],cnt[7],wall[7][2],n,result;
int main()
if(a[i] != b[i]) }}
cout
<< result << '\n';
}return
0;}
奶牛的編號
題目 題目描述 有n 1 n 1000 頭奶牛,它們都被標上乙個優先等級編號 1,2或3。用來表示它們喝水時的優先次序,編號為l的最優先,編號為2的其次,編號為3的最後。每天奶牛開始時排成一行,但總是很亂,需要你把它們重新排成編號為1的奶牛在最前面,編號為2的其次,編號為3的奶牛在最後。你能計算出最...
組合 奶牛編號
作為乙個神秘的電腦高手,farmer john 用二進位制數字標識他的奶牛。然而,他有點迷信,標識奶牛用的二進位制數字,必須只含有k位 1 1 k 10 當然,每個標識數字的首位必須為 1 fj按遞增的順序,安排標識數字,開始是最小可行的標識數字 由 1 組成的乙個k位數 不幸的是,他沒有記錄下標識...
奶牛編號 組合數
description 作為乙個神秘的電腦高手,farmer john 用二進位制數字標識他的奶牛。然而,他有點迷信,標識奶牛用的二進位制數字,必須只含有k位 1 1 k 10 當然,每個標識數字的首位必須為 1 fj按遞增的順序,安排標識數字,開始是最小可行的標識數字 由 1 組成的乙個k位數 不...