- 分享
Day06 - T4 50分代码
- @ 2026-2-9 20:06:54
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int h[N], n, a[N], ans = 1e9;
void dfs(int step) {
if (step == n + 1) {
vector<int> vec;
for (int i = 1; i <= n; i++) {
if (a[i] == 1) {
vec.push_back(h[i]);
}
}
bool flag = true;
int maxx = 0, id = -1;
for (int i = 0; i < vec.size(); i++) {
if (vec[i] > maxx) {
maxx = vec[i];
id = i;
}
}
for (int i = 0; i < id; i++) {
if (vec[i] >= vec[i + 1]) {
flag = false;
}
}
for (int i = id; i < vec.size() - 1; i++) {
if (vec[i] <= vec[i + 1]) {
flag = false;
}
}
if (flag) {
ans = min(ans, int(n - vec.size()));
}
return;
}
a[step] = 1;
dfs(step + 1);
a[step] = 0;
dfs(step + 1);
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> h[i];
}
dfs(1);
cout << ans << '\n';
return 0;
}
0 条评论
目前还没有评论...