和为S
2518 和为S
- 2 秒
- 262,144 KB
- 10 分
- 2 级题
小b有一个01序列A,她想知道A有多少个非空连续子序列和为S。
你能帮帮她吗?
收起
输入
第一行输入一个数n,表示A的长度;
第二行输入n个数‘0’或‘1’,表示A中的元素,以空格隔开;
第三行输入一个非负整数S;
其中0≤S≤n≤30000。
输出
输出一个数,表示子数组的个数
输入样例
5
1 0 1 0 1
2
输出样例
4
思路:f[i]为前i相和,然后暴力做一些n方复杂度可解
#include<iostream>
#include<algorithm>
using namespace std;
int a,n,k,f[],sum;
int main(){
cin>>n;
for(int i=;i<=n;i++){
cin>>a;
f[i]=f[i-]+a;
}
cin>>k;
for(int i=;i<=n-k;i++){
for(int j=i+k;j<=n;j++){
if(f[j]-f[i]==k&&i!=j)
sum++; }
}
cout<<sum<<endl;
return ;
}
随机推荐
- vue 随笔3
在整个vue项目中index.js只能有一个 ,创建vue组件实例的代码只能写在main.js中或者index.js中,别的文件中都是使用export default 常量 或者是方法
- windows server安装zabbix-agent
1.准备安装包: 下载链接:https://www.zabbix.com/downloads/3.4.0/zabbix_agents_3.4.0.win.zip 2.在C盘下创建一个zabbix目录, ...
- E20180502-hm
inject vt. (给…)注射(药物等) ; (给…)注射(液体) ; (给…) 添加; (给…)投入(资金) ; reduce vt. 减少; 缩小; 使还原; 使变弱; vi. ...
- FrameLayout 的使用方法
一.FrameLayout介绍 FrameLayout帧布局是最简单的布局之一,采用帧布局的容器中无论放入多少个控件,控件默认情况下左上角都对齐到容器的左上角,如果控件一样大,同一时间只能见到最上面的 ...
- 51nod1126【矩阵快速幂】
思路: 自己的一点心得:中间矩阵为最终矩阵. 搞出来很简单的: #include <bits/stdc++.h> using namespace std; const int N=1e2+ ...
- JSP分页技术的实现(利用当前页进行前后加减,并利用href进行当前页面传值,传值当然是那个当前值变量)
一.可滚动结果集 Connection con = DriverManager.getConnection(); PreparedStatement stmt = con.prepareStat ...
- Hadoop工作流--ChainMapper/ChainReducer?(三)
不多说,直接上干货! Hadoop的ChainMapper和ChainReducer使用案例(链式处理) 什么是ChainMapper/ChainReducer?
- poj2282The Counting Problem(组合)
链接 计算0-9每一个数字出现的次数 逐位进行处理 对于每一位取几时依次算下组合的情况 注意0的情况需要特殊处理一下 因为0000 00 这样都是等于0的 前面的几位是多余的 #include < ...
- 数字(number)
数字(number) Time Limit:2000ms Memory Limit:128MB 题目描述 LYK定义了一个新的计算. 具体地,一开始它有两个数字a和b. 每一步,它可以将b增加1, ...
- Git之删除分支
目录 删除本地分支 删除远程分支 删除本地分支: git branch -d dev [git branch -参数 本地分支名称] 删除远程分支: git push origin --delete ...