牛客 小a与"204" (贪心)

在这里插入图片描述

我们分类讨论前一个数, a[i-1]=0时, 此时优先4,2,0, a[i-1]=4时, 优先0, 2, 4, a[i-1]=2时, 0|4均可
贪心即可处理

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
using namespace std;
#define ms(x, n) memset(x,n,sizeof(x));
typedef  long long LL;
const LL maxn = 1e5+10;

int n, a[maxn], curA[maxn];
queue<int> q0, q2, q4; //储存0, 2, 4的位置
int main()
{
    cin >> n;
    a[0] = 0;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        if(a[i]==0) q0.push(i);
        else if(a[i]==2) q2.push(i);
        else if(a[i]==4) q4.push(i);
    }

    //重新排序
    for(int i = 1; i <= n; i++){
        if(curA[i-1]==0){
            if(!q4.empty()){
                curA[i] = a[q4.front()];
                q4.pop();
            }
            else if(!q2.empty()){
                curA[i] = a[q2.front()];
                q2.pop();
            }
            else if(!q0.empty()){
                curA[i] = a[q0.front()];
                q0.pop();
            }
        }
        else if(curA[i-1]==4){
            if(!q0.empty()){
                curA[i] = a[q0.front()];
                q0.pop();
            }
            else if(!q2.empty()){
                curA[i] = a[q2.front()];
                q2.pop();
            }
            else if(!q4.empty()){
                curA[i] = a[q4.front()];
                q4.pop();
            }
        }
        else if(curA[i-1]==2){
            if(!q4.empty()){
                curA[i] = a[q4.front()];
                q4.pop();
            }
            else if(!q0.empty()){
                curA[i] = a[q0.front()];
                q0.pop();
            }
            else if(!q2.empty()){
                curA[i] = a[q2.front()];
                q2.pop();
            }
        }
    }
    LL ans = 0;
    for(int i = 1; i <= n; i++){
        ans += (curA[i]-curA[i-1])*(curA[i]-curA[i-1]);
    }
    cout << ans << endl;

	return 0;
}

猜你喜欢

转载自blog.csdn.net/a1097304791/article/details/86624182
今日推荐