首页 > 其他分享 >P1714 切蛋糕

P1714 切蛋糕

时间:2024-03-09 22:01:27浏览次数:18  
标签:P1714 int max sum back 蛋糕 ans pres

原题链接

思路

求最大区间和 \(\to\) 设每个点为区间右端点时的最大区间和 \(f[i]\) ,则答案一定为 \(max(f[i])\)
\(\to\) 求最大的 \(f[i]\) \(\to\) 每个 \(f[i]=max(sum[i]-sum[j-1]),j\in[i-k+1,i]\) \(\to\) \(f[i]=sum[i]-min(sum[j-1])\)

所以我们用单调双端队列动态维护
//好抽象啊

code

#include<bits/stdc++.h>
using namespace std;
int pres[500005]={0};
int dp[500005]={0};
struct node
{
    int sum,x;
    bool operator<(const node &b)
    {
        return sum<b.sum;
    }
};
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        pres[i]=pres[i-1]+x;
    }


    deque<node> q;
    q.push_back({0,0});
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        if(i-q.front().x>m)q.pop_front();
        dp[i]=pres[i]-q.front().sum;
        while(q.size()&&q.back().sum>=pres[i])q.pop_back();
        q.push_back({pres[i],i});
        ans=max(ans,dp[i]);
    }

    cout<<ans;
    return 0;
}

标签:P1714,int,max,sum,back,蛋糕,ans,pres
From: https://www.cnblogs.com/pure4knowledge/p/18063439

相关文章

  • 三角蛋糕 题解
    题目描述XP在机房里放了一块正三角形的大蛋糕,但是第二天他发现蛋糕被老鼠咬坏了。XP不想让蛋糕白白的被浪费,于是他把蛋糕分割成了一个个的小正三角形(如上图所示)。黑色的小正三角形表示老鼠把那一块咬坏了。XP想要切出一块最大的没被老鼠咬坏正三角形的蛋糕,可是最大的三角形有多......
  • 【送酒小程序系统源码】/花店送花系统/蛋糕店系统/奶茶店系统源码
    前端uniapp+后端thinkphp+数据库mysql多门店外卖餐饮点餐系统预约点餐匹配附近店铺 堂食外卖带走  菜品管理.根据用户的位置匹配附近饭店 点餐后,可以在线等叫号餐时输入手机号并支付后,可以支持外支持多规格、备注等快捷功能,以吸多多门店管理 数据概览支持微信小程序 ......
  • 【0909 B组】切蛋糕 题解
    原题链接:切蛋糕。题意给定一个\(n\)行\(m\)列的蛋糕,问横着切\(i\)刀,竖着切\(j\)刀后美味度最小的蛋糕的美味度尽可能大。一块蛋糕的美味度为它所含有的小块的美味度之和。数据范围:\(1\len,m\le14\)。思路看到数据范围,我们可以考虑一种类似于状态压缩的思想,先枚举......
  • [Deeplearning] 吃蛋糕
    放张图自己体会(doge类似于爬楼梯的递推题动态转移方程,或者说递推式:dp[i]=dp[i-1]+dp[i-k]其中\(i≥k\)代码:#include<bits/stdc++.h>usingnamespacestd;constintmod=1000000007;longlongt,k,a,b;longlongdp[100010],sum[100010];intmain(){cin>>t>>k;......
  • DOJ-team-match 8-吃蛋糕
    DOJ-team-match8-吃蛋糕放张图自己体会(doge类似于爬楼梯的递推题动态转移方程,或者说递推式:dp[i]=dp[i-1]+dp[i-k]其中$i≥k$代码:#include<bits/stdc++.h>usingnamespacestd;constintmod=1000000007;longlongt,k,a,b;longlongdp[100010],sum[100010];intm......
  • NOIP2023模拟8联测29 C. 蛋糕
    NOIP2023模拟8联测29C.蛋糕目录NOIP2023模拟8联测29C.蛋糕题目大意思路code题目大意你现在得到了一个二维蛋糕,它从左到右可以分成\(n\)列,每列高为\(a_i\)。对于每一列,又可以从下到上分为\(a_i\)块,并且最上面一块权值为\(1\),从上到下权值依次加。每一列的最上面的......
  • 【算法题】割后面积最大的蛋糕
    题目:矩形蛋糕的高度为h且宽度为w,给你两个整数数组horizontalCuts和verticalCuts,其中:horizontalCuts[i]是从矩形蛋糕顶部到第i个水平切口的距离verticalCuts[j]是从矩形蛋糕的左侧到第j个竖直切口的距离请你按数组horizontalCuts和verticalCuts中提供的水平和竖直......
  • 力扣1444.切割后面积最大的蛋糕(贪心)
    矩形蛋糕的高度为 h 且宽度为 w,给你两个整数数组 horizontalCuts 和 verticalCuts,其中: horizontalCuts[i] 是从矩形蛋糕顶部到第  i 个水平切口的距离verticalCuts[j] 是从矩形蛋糕的左侧到第 j 个竖直切口的距离请你按数组 horizontalCuts 和 verticalCuts......
  • 1465. 切割后面积最大的蛋糕
    1.题目介绍矩形蛋糕的高度为h且宽度为w,给你两个整数数组horizontalCuts和verticalCuts,其中:\(\text{horizontalcuts[i]是从矩形蛋糕顶部到第i个水平切口的距离}\)\(\text{verticalCuts[j]是从赶形蛋糕的左侧到第j个贤盲切口的距离}\)请你按数组horizontalCuts......
  • Solution -「模拟赛」草莓蛋糕
      \(\max(a_x+a_y,b_y+b_x)\)的贡献形式不是独立的,并不好进行分析。考虑通过分类讨论将\(\max\)拆开。若令\(h_i=a_i-b_i\),\(h'_i=b_i-a_i\),可以发现若\(h_x\geqslanth'_y\)取值则为\(b_x+b_y\),反之亦然。  注意到\(h\)本身自带一个一维偏序关系,于......