HDU_5783_DivideTheSequence
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的更多相关文章
随机推荐
- oracle 存储过程调用 执行
oracle 存储过程调用 博客分类: 数据库相关 oracle存储过程 2011年02月11日 星期五 14:47 SQL中调用存储过程语句: call procedure_name(); 调用 ...
- USACO Section1.1PROB Broken Necklace
有点麻烦的一道模拟(官方题解好像有复杂度为$O(n)$DP的姿势?,感觉好烦,以后再细看~ 在一些细节上调试了很久很久,囧RZ /* ID: jusonal1 PROG: beads LANG: C+ ...
- Eclipse 工程配置与目录结构及各种文件夹(常用插件)
.classpath..project 是 Eclipse 工程所必须的文件. OpenExplorer: 该 jar 包的下载地址:samsonw/OpenExplorer 安装配置方法:eclip ...
- go语言---传值和传引用
go语言---传值和传引用 https://blog.csdn.net/cyk2396/article/details/78893828 1.定义: b = a; b.modify(); 如果b的修改 ...
- Flask开启多线程、多进程
一.参数 app.run()中可以接受两个参数,分别是threaded和processes,用于开启线程支持和进程支持. 二.参数说明 1.threaded : 多线程支持,默认为False,即不开启 ...
- 如何给自己的博客上添加个flash宠物插件
最近在一些博主的博客上看到一些小宠物的挂件,很有趣,访客到了网站后可以耍耍小宠物,增加网站的趣味性,在功能强大的博客系统上看到有这样的小宠物挂件还是蛮有趣的. 多次差找资料后,终于在http://ww ...
- 手推FP-growth (频繁模式增长)算法------挖掘频繁项集
一.频繁项集挖掘为什么会出现FP-growth呢? 原因:这得从Apriori算法的原理说起,Apriori会产生大量候选项集(就是连接后产生的),在剪枝时,需要扫描整个数据库(就是给出的数据),通过 ...
- Linux 上安装 Node.js
Linux 上安装 Node.js 直接使用已编译好的包(在个人阿里云服务器47.100.6.106上安装) Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使 ...
- svg image 图片无法铺满 circle 的问题解决
引子 使用d3.js绘制了力布图后,需要在circle中绘制图片,方法如下: // 绘制图片 drawPattern(gContainer) { let that = this; let gPatte ...
- less新手入门(一) 变量、extend扩展
前景提要 个人在学习less时候的学习笔记及个人总结,主要是结合less中文网来学习的,但是说是中文网并不是中文呀,看起来很耽误时间,为了避免以后再次看的时候还要翻译思考,特意做此总结,方便以后查阅. ...