B Suit and Tie 995B 思維暴力

2021-09-29 05:01:18 字數 1332 閱讀 8614

傳送門

題意:給你2*n個數,其中每乙個數都有乙個和他相等的數,共有n個不同的數。現在讓你將每個相等的數排在一起,每次只能交換相鄰的數,問最少需要交換幾次。

思路:先想什麼是優解,必然是先將每乙個座標為1,3,5位置上的數固定(這些都是不需要動的,以它們為參照),這必然是最優座標,剩下的就是去尋找後面的和該位置上相等的數。先找到相等的數所對應的座標,然後從後向前不斷與前方的數交換位置即可。

/**

* from:

* qingdao agricultural university

* created by xiangwangacmer

* date : 2019-10-31-10.12.37

* talk is cheap.show me your code.

*/#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const ll maxn =

1e6+5;

const ll minn =

1e9+5;

const ll mod =

1000000007

;const

int inf =

0x3f3f3f3f

;const

long

long limit =

4294967295ll

;vector<

int>v[maxn]

;int dp[maxn]

;vector<

int>g[maxn]

;bool row[maxn]

, col[maxn]

;bool flag =0;

queue<

int>q;

int a[maxn]

;int

main()

int cnt =0;

for(

int i =

1; i <=

2*n; i+=2

)///先找出第乙個所在的位置的元素是什麼,再從後面找和他相同的元素的座標,然後那個座標從後往前遍歷。}}

} cout << cnt << endl;

return0;

}

nyoj 995 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1...

nyoj 995 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1...

nyoj 995 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1...