8685 交换瓶子 贪心基础 蓝桥杯省赛集训 简单枚举
思路:每次找出剩下瓶子的最小值,交换到前面去
#include<bits/stdc++.h> #define f(i,s,e) for(int i = s; i <= e; i++) #define ll long long using namespace std; const int N = 1e3+10,inf = 0x3f3f3f3f; int n,ans; int a[N]; int main() { cin >> n; f(i,1,n) cin >> a[i]; for(int i = 1; i <= n; i++) { int minn = a[i],id; for(int j = i + 1; j <= n; j++) if(minn > a[j]) minn = a[j],id = j; if(minn == a[i]) continue; swap(a[i],a[id]); ans++; } cout << ans; return 0; }

浙公网安备 33010602011771号