好訊息 OR 壞訊息
1.我們可以先考慮暴力的做法,首先斷環成列,然後一個個判斷求字首和,再一個個判斷是不是都>=0,複雜度O(n^2)
2.單調佇列維護最小的字首和,,對於每一個k+n-1,我們用單調佇列維護k–k+n-1的最小值,並將其減去s[k-1]判斷是否合法。如果最小的都已經合法,那麼就肯定合法
#include<bits/stdc++.h>
#define maxn 2000010
using namespace std;
int n,m;
long long a[maxn],q[maxn],sum[maxn];
int head=1,tail;
inline long long read()
{
long long res=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch)){res=(res<<1)+(res<<3)+(ch&15);ch=getchar();}
return res*f;
}
int ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)a[i]=read(),a[i+n]=a[i];
for(int i=1;i<n*2;i++)sum[i]+=sum[i-1]+a[i];
for(int i=1;i<n*2;i++)
{
if(q[head]<=i-n)head++;
// cout<<q[head]<<' ';
while(head<=tail&&(sum[i]<=sum[q[tail]]))tail--;
q[++tail]=i;
if(i>=n&&sum[q[head]]-sum[i-n]>=0)ans++;
}
cout<<ans;
return 0;
}
相關文章
- iPhone14:一個好訊息,一個壞訊息!果粉:習慣了“擠牙膏”iPhone
- 好訊息,fish 3.0.0 釋出
- RocketMQ 訊息整合:多型別業務訊息-普通訊息MQ多型型別
- 訊息機制篇——初識訊息與訊息佇列佇列
- RocketMQ 訊息整合:多型別業務訊息——定時訊息MQ多型型別
- 好訊息!PostgreSQL 13增加新功能!SQL
- 利用redis的hash結構搭建訊息服務(發訊息,訂閱訊息,消費訊息,退訂)Redis
- RocketMQ 原理:訊息儲存、高可用、訊息重試、訊息冪等性MQ
- 訊息中介軟體—RocketMQ訊息消費(三)(訊息消費重試)MQ
- MQTT-保留訊息和遺囑訊息MQQT
- 解析 RocketMQ 業務訊息——“事務訊息”MQ
- 解析 RocketMQ 業務訊息--“順序訊息”MQ
- 訊息中介軟體—RocketMQ訊息傳送MQ
- RabbitMQ訊息佇列(五):Routing 訊息路由MQ佇列路由
- vue---元件間傳遞訊息(父子傳遞訊息,兄弟傳遞訊息)Vue元件
- Flash 訊息
- 什麼是好的錯誤訊息?
- EventBridge訊息路由|高效構建訊息路由能力路由
- 直播原始碼網站,訊息圖示在收到訊息時展示訊息條數原始碼網站
- 訊息佇列系列一:訊息佇列應用佇列
- 訊息粘包 和 訊息不完整 問題
- RocketMQ訊息丟失解決方案:事務訊息MQ
- Rabbitmq可靠訊息投遞,訊息確認機制MQ
- vue提示訊息Vue
- RocketMQ普通訊息MQ
- 訊息佇列佇列
- RabbitMQ訊息模式MQ模式
- Laravel 訊息通知Laravel
- 廣播訊息
- Laravel——訊息通知Laravel
- 訊息佇列——數十萬級訊息的消費方案佇列
- 22面試常問:為什麼需要訊息佇列?使用訊息佇列有什麼好處?面試佇列
- 阿里雲訊息佇列 Kafka-訊息檢索實踐阿里佇列Kafka
- 訊息佇列之如何保證訊息的可靠傳輸佇列
- 本地訊息表成為歷史,二階訊息才是王道
- RabbitMQ訊息佇列(九):Publisher的訊息確認機制MQ佇列
- windows 訊息斷點Windows斷點
- [Redis]訊息佇列Redis佇列