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的更多相关文章
随机推荐
- CPU卡的读写【转】
本文转载自:http://blog.csdn.net/logaa/article/details/7465226 一般来说,对存储卡和逻辑加密卡操作,使用接触式IC卡通用读写器:对CPU卡使用CPU卡 ...
- uva10870
https://vjudge.net/problem/UVA-10870 裸的矩阵快速幂 注意系数矩阵在前面 因为系数矩阵为d*d 方程矩阵为d * 1 放反了就是d * 1 d * d 不符合矩阵乘 ...
- Centos7 配置防火墙 firewall
一.firewall 1.从CentOS7开始,默认使用firewall来配置防火墙,没有安装iptables(旧版默认安装). 2.firewall的配置文件是以xml的格式,存储在 /usr/li ...
- Helios Service Release 2安装SVN
Eclipse Helios Service Release 2安装SVN地址:subclipse http://subclipse.tigris.org/update_1.6.x 1.使用方式:he ...
- hdu 2209 翻纸牌游戏【贪心】
本来是冲着搜索去的--其实可以贪心 因为能改变第一位的只有第一位和第二位,然后改完之后后面的同理,也就是说只要贪心的推一遍就可以 但是注意要在翻第一个和不翻第一个之间取个min #include< ...
- 清北考前刷题day6早安
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #d ...
- sshd服务器搭建管理和防止暴力破解
1.1 Linux服务前期环境准备,搭建一个RHEL7环境 1.2 sshd服务安装-ssh命令使用方法 1.3 sshd服务配置和管理 1.4 防止SSHD服务暴力破解的几种方式 1.1 Linux ...
- 使用 typescript 和 canvas 重构snow效果
前言:之前做过一个 snow 效果,但是是直接用 HTML 做的点击此处查看 ,几个星期前,我用 typescript 和 canvas 重构了一下, snow效果是一个很简单的效果,但是用来练手还是 ...
- centos 扩展lrzsz通过xshell 下载安装文件
yum自动安装: yum install lrzsz 手动安装方法如下: 定制安装的linux可能没有把rzsz包安装到系统,这对用securecrt这样的windows工具传输文件特别不方便.为了使 ...
- 10046 trace and sql
1. SQLT 下载 从metalink上下载SQLT工具,参考文档 (以下大部分(SQL可以在sqlt\utl 目录下找到)) 1.1 SQLT 安装 SQLT安装在自己的schema SQLT ...