本文主要是介绍《牛客》-E可口蛋糕,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
又是一个很帅的双指针,l,r
判断如何当前l,r区间内和的饱腹值和>m时,不断枚举l向右移动,移动过程选出当前1-l中的可口值的最小值(mn),如何再mmax=max(mmax,pre_d[]-mn);
具体细节看下面捏(通俗易懂)
ACcode:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;
int n,m,a[N],b[N];
void solve() {cin>>n>>m;for(int i=1; i<=n; ++i) {cin>>a[i];a[i]+=a[i-1];}for(int i=1; i<=n; ++i) {cin>>b[i];b[i]+=b[i-1];}int ans=-2e18,mn=2e18;int l=0,r=1;while(r<=n){while(a[r]-a[l]>m){mn=min(mn,b[l]);l++;}ans=max(ans,b[r]-mn);r++;}cout<<ans<<"\n";
}
signed main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int tt=1;//cin>>tt;while(tt--) {solve();}return 0;
}
over~
这篇关于《牛客》-E可口蛋糕的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!