5-8总结

· · 个人记录

标题

第一题

错误代码

/*
*/
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
const int N = 2e5 + 10;

int main()
{

    return 0;
}

正确代码

/*
思路
/

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
const int N = 2e5 + 10;
int a[200005], n, r=0;//r:最右边球的位置
int main(){
    cin >> n;
    while(n--){ //n次操作
        int x; cin>>x;
        a[++r] = x; // 1左移x位相当于 2^x
        if(r<=1) continue;
        else if(a[r]!=a[r-1]) continue;
        else if(a[r]==a[r-1]){
            while(r>=2 && a[r]==a[r-1]){
                int t = a[r] + 1;
                a[r-1] = t;
                r--;
            }
        }
    }
    cout << r;
    return 0;
}