求这道贪心方法的证明
  • 板块P3817 小A的糖果
  • 楼主alma
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/1/30 22:50
  • 上次更新2023/10/24 02:28:06
查看原帖
求这道贪心方法的证明
818226
alma楼主2023/1/30 22:50

这道贪心是按照大佬们的说法是显而易见,然而本人脑子太笨,一心想问这样为什么是贪心(或者说这样贪心为什么是正解)。

还请各位不啬赐教,可以用证明告诉我这样为什么是对的吗?(千田反爱瑠这样说道)


附上本人 ACAC 代码:

#include<iostream>
using namespace std;
#define size 100000
int n,x,a[size+10];
long long cnt,sum;
int main(){
    cin>>n>>x;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=2;i<=n;i++){
        if(a[i-1]+a[i]>x){
            cnt=0;
            if(a[i-1]>x)cnt+=a[i-1]-x,a[i-1]=x;
            else if(a[i]>x)cnt+=a[i]-x,a[i]=x;
            cnt+=a[i]+a[i-1]-x;
            a[i]=x-a[i-1];
            sum+=cnt;
        }
    }
    cout<<sum<<endl;
    return 0;
}
2023/1/30 22:50
加载中...