【思维/模拟】Reorder the Books

传送门:这里

题意:一摞书,无序,可以把某本书抽到最顶上,问最少抽几次可以使书有序。

基本原理:把大的抽上去。

实现,找到最大的那个,然后从后向前扫描,连续几个数X,需要抽的数目就是书的数目-x

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main() {
  int T, ans, m[1000];
  cin >> T;
  while (T--) {
    int n = 0;
    cin >> n;
    for (int i = 1; i <= n; i++)
      cin >> m[i];
    ans = n;
    for (int i = n; i > 0; i--) {
      if (ans == m[i])
        ans--;
    }
    cout << ans << endl;
  }
  return 0;
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

2 × 2 =