0
点赞
收藏
分享

微信扫一扫

洛谷P3817 小A的糖果

感觉情况很多呀,以x/2为分界线,不能有超过两个盒子里的糖果超过他。如果一个盒子里的糖果大于x/2且为t,那么剩下的所有的糖果都不能超过x-t。而且要求的是最少的那种情况,那到底是把糖果多的盒子全吃到x/2还是把小于x/2的全吃到x-t。这还取决于有多少糖果多的盒子和多少糖果少的盒子。
!!!干脆把眼睛珠子挖出来算了,“每相邻两个盒子”
所以每两个两个比较,如果两个相加s大于x,则总共要吃掉s-x个糖果,而为了贪心让总吃的最少,所以每次吃第二个盒子里的糖果肯定最赚,因为这样下次再两两比较吃的也肯定最少

int main() {
    int n;
    ll x,a[100001]={0},s=0;
    cin>>n>>x;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++)//第一个盒子同样要贪心,相当于他的上一个为0
        if(a[i]+a[i-1]>x) {s+=a[i]+a[i-1]-x;a[i]=x-a[i-1];}
    cout<<s;
    return 0;
}
举报

相关推荐

P3817 小A的糖果

洛谷p1135

洛谷 P1307

洛谷p1551

洛谷P1309

P1217(洛谷)

洛谷p1443

0 条评论