美妙的約會C

2021-10-08 15:40:32 字數 1225 閱讀 1382

牛牛和妞妞在一天晚上決定一起去看一場情人節演唱會,可是由於這場演唱會實在太出名了,有很多情侶都來**,牛牛和妞妞不小心被**沖散了!

維持秩序的人決定,讓大家排成一列,相鄰兩個進去的人(2k-1和2k,k為正整數)坐在相鄰座位。但是現在的隊伍亂糟糟的,有很多情侶都不在相鄰位置。維持秩序的人同意讓情侶們跟相鄰的人交換位置,直到所有情侶都在2k-1和2k位置上為止。

但是維持秩序的人很沒有耐心,所以需要最少的交換次數,你能幫情侶們算出這個次數嗎?

第一行乙個整數n,表示一共有n對情侶,編號從1到n。同一對情侶編號相同。1<=n<=100

第二行2n個整數ai,表示編號為ai的情侶在第i個位置。1<=ai<=n

乙個整數,代表最少交換次數。
示例1

3

3 3 2 2 1 1

0
示例2

4

1 2 3 4 1 2 3 4

6
要求a[2*k]和a[2*k+1]位置上的編號一樣,而a中所有的編號不排序,求所有的編號相同的值移動到相鄰位置所需要的的最小距離。

1 2 3 4 1 2 3 4,記第二個重複的值為x',於是

1 2 3 4 1『 2』 3『 4』

1的物件1『,1』移動到1的旁邊需要移動三次:

1 2 3 1『 4 2』 3『 4』,1 2 1『 3 4 2』 3『 4』,1  1『 2 3 4 2』 3『 4』,這樣就完成一對,1『向前移動類似插入排序,只要1』的位置沒有到1的右邊,就繼續交換位置,每交換一次位置,記錄交換次數的計數器加1。

直到4對分別成功牽手:11 22 33 44

#includeusing namespace std;

int main()

n *= 2;

for (i = 0; i < n; i=i+2)//i每次移動兩個位置,因為有兩個人坐在一起了,下乙個位置加2

}for (j = l; j != i + 1; --j)//開始讓i的物件乙個乙個挪位置,直到到i的旁邊:插入排序的思想}}

cout << count;

return 0;

}

ps

a. 考慮好起始位置和排序的條件

b. 陣列a最多200個人,少了就ac40%

美妙的遞迴

剛開始接觸遞迴方法時,感覺到這種方法很匪夷所思。很多很複雜的問題短短幾行 就能解決。當時我一直試圖理清程式執行的具體過程,由於對遞迴認識不夠每次都弄的自己很暈。在這裡先不談遞迴程式執行時底層的細節,先舉幾個小例子見識一下遞迴的威力。example1 鍊錶逆序。對鍊錶逆序有很多辦法,如何寫乙個遞迴的函...

美妙的秒殺架構

秒殺程式問題根源在於 海量的請求在爭搶有限的資源,秒殺其實和火車票非常像,都是對有限資源的搶占。這一點和微博不一樣,微博不需要加鎖,是客戶端來拉去,資源是不受限的。首先是要對於架構進行分層,最上面是展示層,其次是站點層,然後是服務層,最後才是資料層。秒殺架構的核心其實 保護資料層,因為在整套秒殺架構...

python getattr的美妙生活

一句話簡介 拿到物件是的該屬性class test age 10 def init self self.name donald staticmethod def return man print getattr test,age print getattr test,10mana a hello w...