[第1章 1.2t4] 好消息坏消息
97 字
1 分钟
[第1章 1.2t4] 好消息坏消息
//本题深入理解了两项//1.针对每个窗口要先清整,再推入,最后判断窗口大小//2.使用sum数组可以解决此类涉及到求和的问题#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll n; cin>>n; vector<ll> a(2*n+2); for(ll i=1;i<=n;i++){ cin>>a[i]; a[n+i]=a[i]; } vector<ll> sum(2*n+2); sum[0]=0; for(ll i=1;i<=2*n;i++){ sum[i]=sum[i-1]+a[i]; } deque<ll> dq; ll ans=0; for(ll i=1;i<2*n;i++){ while(!dq.empty()&&sum[dq.back()]>=sum[i])dq.pop_back(); dq.push_back(i); if(i>=n){ while(!dq.empty()&&i-dq.front()>n)dq.pop_front(); if(sum[dq.front()]-sum[i-n]>=0)ans++; } } cout<<ans<<endl; return 0;}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
总有一天我会搞清楚所有的细节
闲谈杂录如题
2
05异常-断言-日志
深入技术2026-10-26
3
04接口与lambda(案例)
深入技术手敲给出5个案例,辅助读者理解
4
二十岁,以及下一个十年
闲谈杂录二十岁生日这天,谨以此篇文章回望过去并展望下一个十年
5
[第2章 2.2e1] Palindromes
算法竞赛2026-06-27
随机文章随机推荐





