傳送門
題意:給你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...