P2629 好消息,坏消息

题目描述

uim在公司里面当秘书,现在有n条消息要告知老板。每条消息有一个好坏度,这会影响老板的心情。告知完一条消息后,老板的心情等于之前老板的心情加上这条消息的好坏度。最开始老板的心情是0,一旦老板心情到了0以下就会勃然大怒,炒了uim的鱿鱼。

uim为了不被炒,知道了了这些消息(已经按时间的发生顺序进行了排列)的好坏度,希望研究如何不让老板发怒。

uim必须按照时间的发生顺序逐条将消息告知给老板。不过uim可以使用一种叫“倒叙”的手法,例如有n条消息,小a可以从k,k+1,k+2...n,1,2...k-1这种顺序通报。

他希望知道,有多少个k,从k开始通报到n然后从1通报到k-1可以让老板不发怒。

输入输出格式

输入格式:

第一行一个整数n(1 <= n <= 10^6),表示有n个消息。

第二行n个整数,按时间顺序给出第i条消息的好坏度Ai(-1000 <= Ai <= 1000)

输出格式:

一行一个整数,表示可行的方案个数。

输入输出样例

输入样例#1:

4
-3 5 1 2 

输出样例#1:

2

说明

样例解释

[5 1 2 -3]或[1 2 -3 5]

对于25%数据n<=1000

对于75%数据n<=10000

对于100%数据n<=10^6

数据范围N*N去搜,肯定不行。

那就预处理一遍,前缀最小值,部分区间的的前缀最小值

#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int n,ans;
int tot=0;
int f1[2000009],f2[3000009];
int sum[2000009],a[2000009];
int main()
{
    scanf("%d",&n);
    f1[0]=99999999;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);tot+=a[i];
        f1[i]=min(f1[i-1],tot);
    }
    sum[n]=a[n];f2[n]=a[n];
    for(int i=n-1;i>=1;i--)
    {
        sum[i]=sum[i+1]+a[i];
        f2[i]=min(a[i],f2[i+1]+a[i]);
    }
    f1[0]=0;
    for(int i=1;i<=n;i++)
    if(f2[i]>=0&&sum[i]+f1[i]>=0)    ans++;
    cout<<ans;
}
时间: 2024-10-10 07:21:06

P2629 好消息,坏消息的相关文章

p2629 好消息,坏消息 (线段树)

---恢复内容开始--- 顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述-->p2629 好消息,坏消息 历程 刚开始看到这个题,发现是需要维护区间和,满心欢喜敲了一通线段树,简单debug之后交上去 \(45pts\)? 改代码的时候开始考虑这样做的正确性. 维护区间和,前后两个的区间和加起来一定等于整个区间的区间和,那我和直接求和有什么区别? 再次读题 发现必须要求每一个时刻老板的怒气值都\(\geq 0\)才行. xjb分析 既然维护区间和行不通,考虑改变线段树所维护的东西

经济--力哥说理财(二)--降息对股市是好消息还是坏消息?

降息对股市是好消息还是坏消息? 这个问题的正确答案是:在牛市中好消息是好消息,坏消息也是好消息,没有消息还是好消息.而在熊市中,坏消息是坏消息,好消息也是坏消息,没有消息还是坏消息. 利多出尽 思路决定出路,性格决定命运. 吴晓波老师,在他的自媒体上发表的了一篇文章<我为什么不炒股> 中国股市就是个怪胎,证监会的不作为(足协一样),努力让国有企业融资做大. 中国股市里的企业从来没有把股价视为公司价值的晴雨表,巴菲特的价值,中国股市是个赌场 股市和经济没什么关系,政策市. 经典港剧<大时代

上海的同志们挺住!又有3个坏消息要告诉你们!

上海的同志们务必挺住啊! 又有3个坏消息 这日子真的是没法过了 第一个坏消息 上海半个月都处于尿失禁模式 根据气象预报 上海未来半个月里 基本上是看不到阳光明媚了... 上海小伙伴们都看到了吗 这就是上海未来的天气预报 很抱歉小编只看到雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨ヽ.ヽ'. ヽ .ヽ'.ヽ.ヽ .ヽ'.ヽ.ヽ'.ヽ.ヽ'.ヽ.ヽ'.ヽ.ヽ'.ヽ.ヽ'.ヽ.'.ヽ.ヽ'. ヽ.ヽ'.ヽヽ.ヽ'.ヽ ヽ.ヽ.ヽ'. ヽ .

尽快报告坏消息

项目管理的一个主要原则就是尽早报告坏消息,比如:需求的错误,代码的错误,进度的延期,技术的障碍等等.有哪些手段可以报告坏消息呢? 在上述的手段中,在代码完成之前的措施是属于"尽早"发现坏消息的手段,是修复缺陷成本最低的手段,是我们应该优先落实的. 不同的项目根据自己的实际情况,对这些措施进行裁剪,也可以创造自己新的一些实践,以平衡投入和产出.

销量下滑,余承东被“离职”,坏消息不断的华为手机或跌出前3

前不久,知名市场研究公司IDC发布的手机季度跟踪报告显示,2017 年第四季度,全球智能手机市场出货量为4.035 亿部,相比去年同期下降 6.3%.报告数据还显示,华为手机Q4 的出货量为4100万部,同比下降 9.7% . 进军美国市场受阻.余承东离职.转岗传闻,手机出货量下滑,华为手机近来可谓坏消息不断.我们不禁要问,坏消息不断的华为手机,在2018年还好吗? 一.战略失误,华为手机海外表现疲软 与华为手机销量下降相应的,是华为手机在海外市场的疲软.一直以来,华为手机都将海外市场作为重点榜

洛谷 P2629 好消息,坏消息

题目描述 uim在公司里面当秘书,现在有n条消息要告知老板.每条消息有一个好坏度,这会影响老板的心情.告知完一条消息后,老板的心情等于之前老板的心情加上这条消息的好坏度.最开始老板的心情是0,一旦老板心情到了0以下就会勃然大怒,炒了uim的鱿鱼. uim为了不被炒,知道了了这些消息(已经按时间的发生顺序进行了排列)的好坏度,希望研究如何不让老板发怒. uim必须按照时间的发生顺序逐条将消息告知给老板.不过uim可以使用一种叫"倒叙"的手法,例如有n条消息,小a可以从k,k+1,k+2.

百度下半年惩罚网站的低质量,坏消息到来硕士

百度下半年严惩低质量网站.站长的噩耗即将到来 当您点击阅读这篇文章后,我相信您是冲着这个标题而来,在这里我想告诉您的是:"这个标题有一个特殊的地方,就是出现了百度下半年严惩低质量站点和站长的噩耗就要到来";而这个标题大概的意思是说:"百度6月份以后就会严惩质量比較低的站点,且各个行业的站点仅仅要存在质量低的网页都会被K站和降权,以致站长们的噩耗就要来到. "所以,本篇文章仅送给那些站点质量较低的.权重不高的.排名较差的和心虚的站长们.当中包含人才.教育.房产.游戏.

“玩游戏,我没学到东西”,一定是坏消息?

"玩游戏,没学到任何东西",当这句话出现的时候,似乎很容易让人立刻联想起玩物丧志.当时我在一则新闻中看到此句时,心里更是一沉. 文/张书乐(TMT行业观察者.游戏产业时评人,人民网.人民邮电报专栏作者) 刊载于<人民邮电报>2017年4月7日<乐游记>专栏138期 因为这则新闻是讲述国外一个教育游戏团队的创业历程的.可不是糟糕了吗!可把整个句子一看,乐了."一开始,他们让一班10岁孩子试玩了<宇宙大爆炸传说>.一个女孩反映她在玩游戏的过程中

Qt creator 如何支持中文编码(Qt4和Qt5解决方法不同)

一.首先讲Qt5: 首先Qt5是直接支持中文的,用tr("输入中文即可")包含就能显示中文(不用像Qt4一样添加修改代码) ps:但是我里边有中文符号":"冒号时就会报错,,求大神讲解问什么?提示如下: 解决方法是:换成英文的":"冒号就没问题了 二.另外讲Qt4如何支持中文: 非常固定的方法,如下: 1.在main()函数前#include<QTextCodec> 2.在QApplication a(argc, argv);下面添加