题解:P10840 【MX-J2-T1】Turtle and Sequences

· · 题解

这道题要求计算最多的次数,那么怎么计算呢?\ 假设序列 a_1,a_2, \cdots ,a_n 中所有的数都相等,即 a_1 = a_2 =... = a_n 。\ 因为对于任意的 i (1 \le i \le n - 1),都有 a_i = a_{i+1},不满足进行操作的条件 a_i \ne a_{i + 1},所以无法进行任何操作,结果为 0。\ 假设序列中存在至少一对不相等的相邻数,即存在 i(1 \le i \le n - 1),使得 a_i \ne a_{i + 1}。\ 从左到右进行操作,每次找到一对不相等的相邻数就进行操作。\ 第一次操作后,序列长度减 1。\ 第二次操作时,在新的序列中继续找到不相等的相邻数进行操作,序列长度又减 1。\ 以此类推,每次操作都能使序列长度减 1,直到序列中只剩下一个数,此时共进行了 n - 1 次操作。\ 综上所述,当所有数都相等时,结果为 0;否则为 n - 1。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[100001];
    cin >> n;
    for(int i=1;i<=n;i++) cin >> a[i];
    bool f=true;
    for(int i=1;i<n;i++){
        if(a[i]!=a[i+1]){
            f=false;
            break;
        }
    }
    if(f) cout << 0;
    else cout << n-1;
    return 0;
}