HDU_5783_DivideTheSequence  点击打开链接

题意:

生成尽量多的连续的子串,且子串的前缀和大于等于0,输出符合题意的子串的数量。

这题目是参加四月份的个人训练赛遇到的,挺水的。但是因为没读懂题目和不懂得串的前缀和是什么东东,嗯。。。(此处省略几千字)

串的前缀和:

设有一个数组buf[10],前缀和为s[n];

buf[1]的前缀和为是s[1]=buf[1];

buf[2]的前缀和为是s[2]=buf[1]+buf[2];以此类推;

设遍历时元素的和为sum=0,子串的个数为ans=0;

所以这题目需要从后面往前遍历,一次相加各个元素。如果和大于等于零ans+1,sum清零。如果从前边开始遍历,就不能判断遇到负数时该串的前缀和是不是大于等于零(因为sum会清零)。

代码:

while(~scanf("%d",&n))
{
for(int i=;i<n;i++){
scanf("%lld",&buf[i]);
}
ll sum=;int cur=;//注意相加数的范围,一大坑,不要问我是怎么知道的(其实看数据范围,是应该能想到的)
for(int i=n-;i>=;i--){
sum+=buf[i];
if(sum>=){
cur++;
sum=;
}
}
printf("%d\n",cur);
}

HDU_5783_DivideTheSequence的更多相关文章

随机推荐

  1. 利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)

    利用JFreeChart生成时序图(6) (转自 JSP开发技术大全) 14.6 利用JFreeChart生成时序图 通过JFreeChart插件只能生成普通效果的时序图,利用工厂类ChartFact ...

  2. go语言---reflect

    go语言---reflect https://blog.csdn.net/cyk2396/article/details/78902953 一.reflect的使用: import ( "f ...

  3. Ural 1382 2SAT

    ural1382 直接套用 2SAT模板 缩点 拓扑排序... #include<iostream> #include<cstdio> #include<cstdlib& ...

  4. MySQL基础 — 常用命令

    一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MySQ: 首先在打开cmd窗口,输入mysql -uroot -p ,然后空格进入MySQL控制台, ...

  5. Spark之RDD的定义及五大特性

    RDD是分布式内存的一个抽象概念,是一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,能横跨集群所有节点并行计算,是一种基于工作集的应用抽象. RDD底层存储原理:其数据分布存储于多台机器上 ...

  6. CSS实现居中的方式

    在介绍居中方式之前,简单介绍一下行内元素和块级元素. 行内元素 和其他元素都在同一行 高,行高及外边距和内边距部分可以改变 宽度只与内容有关 行内元素只能容纳文本或者其他行内元素 常用内联元素:a,i ...

  7. 汇编程序52:实验15 安装新的int9中断例程

    assume cs:code ;重写int9中断例程,当按住a后松开,便会产生满屏A stack segment dw dup() stack ends code segment start: mov ...

  8. [GDOI2014]拯救莫莉斯

    题目描述 莫莉斯·乔是圣域里一个叱咤风云的人物,他凭借着自身超强的经济头脑,牢牢控制了圣域的石油市场. 圣域的地图可以看成是一个n*m的矩阵.每个整数坐标点(x , y)表示一座城市吗,两座城市间相邻 ...

  9. lower_bound和upper_bound函数

    lower_bound(ForwardIter first,ForwardIter last,const_TP & val) upper_bound(ForwardIter first,For ...

  10. scala-基础-映射(1)

    //映射(1)-构建,获取,更新,迭代,反转,映射(可变与不可变 互换) class Demo1 extends TestCase { //构建与获取 def test_create_^^(){ // ...