题解:P9728 [EC Final 2022] Dining Professors

· · 题解

P9728 [EC Final 2022] Dining Professors 题解

思路

两种情况:

答案为 n\times3 减去每道菜对满意度影响总值,所以尽量少减不能吃辣人数。

由于圆桌是一个环,故要破环成链。

具体思路见代码注释。

AC Code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,x,sum;
int a[100005],cnt[100005];
signed main(){
    cin>>n>>x;
    for(int i=1;i<=n;i++)cin>>a[i];
    a[0]=a[n],a[n+1]=a[1];//破环成链
    for(int i=1;i<=n;i++){
        for(int j=i-1;j<=i+1;j++){
            if(!a[j])cnt[i]++;//累加不能吃辣人数 
        }
    }
    sort(cnt+1,cnt+1+n);//排序不能吃辣人数
    for(int i=1;i<=x;i++)sum+=cnt[i];//可吃辣人数 
    cout<<3*n-sum;
    return 0;
}