1415: 小ho的01串 [字符串]
1415: 小ho的01串 [字符串]
题目描述
有一个由0和1组成的字符串,它好长呀--------一望无际
恩,说正题,小ho的数学不太好,虽然是学计算机的但是看见0和1也是很头疼的,
现在他的老师想让他计算出来包含K个1的子串有多少个-----呀,头要炸了!!!
小ho知道你的数学棒棒哒,所以来找你帮忙了。
输入
第一行是一个数K。
第二行是一个字符串str。
0 < |str| ≤ 106
输出
一个数S,代表了满足条件的个数。
样例输入
2
101010
样例输出
6
C/C++ (clang++ 3.3)
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
#include<list>
#include<cmath>
#include<vector>
using namespace std;
const int maxn=1000010;
char str[maxn];
long long num[maxn];
int main()
{
// freopen("in1.txt","r",stdin); //查BUG
// freopen("out1.txt","w",stdout);
long long ans=0,k,cnt=1;
scanf("%lld%s",&k,str);
long long l=1,r,len=strlen(str),temp=0;num[0]=-1;
if(k==0)
{
l=0;
for(long long i=0;i<len;++i)
{
if(str[i]=='1')
{
r=i-l;l=i+1;
ans=ans+r*(r+1)/2;
//cout<<ans<<endl;
}
}
r=(len-l);
ans=ans+r*(r+1)/2;
cout<<ans<<endl;
return 0;
}
for(long long i=0;i<len;++i)
{
if(str[i]=='1')
{
temp++;num[cnt++]=i;
}
if(temp==k+1)
{
ans=ans+(num[l]-num[l-1])*(num[cnt-1]-num[cnt-2]);l++;temp--;
//cout<<num[l]-num[l-1]<<endl;
}
}
if(temp==k)
{
ans=ans+(num[l]-num[l-1])*(len-num[cnt-1]);
}
cout<<ans<<endl;
return 0;
}
1415: 小ho的01串 [字符串]的更多相关文章
- COGS 862. 二进制数01串【dp+经典二分+字符串】
862. 二进制数01串 ★ 输入文件:kimbits.in 输出文件:kimbits.out 简单对比 时间限制:1 s 内存限制:128 MB USACO/kimbits(译 by ...
- hihocoder1545 : 小Hi和小Ho的对弈游戏(树上博弈&nim博弈)
描述 小Hi和小Ho经常一起结对编程,他们通过各种对弈游戏决定谁担任Driver谁担任Observer. 今天他们的对弈是在一棵有根树 T 上进行的.小Hi和小Ho轮流进行删除操作,其中小Hi先手. ...
- 洛谷P2727 01串 Stringsobits
P2727 01串 Stringsobits 24通过 55提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交 讨论 题解 最新讨论 这题的思路是啥啊!!!跪求- 题目背景 考虑 ...
- C++实现01串排序
题目内容:将01串首先按长度排序,长度相同时,按1的个数从少到多进行排序,1的个数相同时再按ASCII码值排序. 输入描述:输入数据中含有一些01串,01串的长度不大于256个字符. 输出描述:重新排 ...
- 【巧妙】【3-21个人赛】Problem C 01串
Problem C Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Sub ...
- bitset(01串)优化
bitset的经典使用: 见代码及注释: #include<bitset> #include<algorithm> using namespace std; //只需调用< ...
- ACM学习历程——hihoCoder挑战赛10A 01串(策略)
时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和" ...
- hiho #1144 : 01串(模拟)
#1144 : 01串 时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001 ...
- 51nod 1391:01串
1391 01串 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 给定一个01串S,求出它的一个尽可能长的子串S[i. ...
随机推荐
- Git---时光穿梭机之版本回退02
现在你的本地仓库底下添加一个readme.txt文件 第一次readme.txt的内容如下:: Git is a version control systemGit is free sofwore 然 ...
- pac (PAC(Proxy Auto Config) 是一个 Script;经由编写这个 Script,我们可以让系统判断在怎么样的情形下,要利用哪一台 Proxy 来进行联机。)
PAC自动代理文件格式,教你如何写PAC文件 PAC文件格式 PAC文件是纯文本格式的,实际上就是JavaScript文件.Chrome/Chromium的扩展Switchy!的"Auto ...
- 关于setConnectTimeout和setReadTimeout的问题
1.问题描述 这几天测试重构后的下载框架,发现在下载过程中如果网络中断或网络较差,个别应用的下载就会阻塞卡住,一直卡在 “正在下载 xx%”. 2.问题排查和定位 思考:网络差不应该报网络异常的错 ...
- 7.25 7figting!
TEXT 82 Proton 马来西亚宝腾汽车 A fork in the road 何去何从?(陈继龙编译) Nov 30th 2006 | HONG KONG From The Economist ...
- 使用java代码编辑oracle数据库
package com.hanqi; import java.io.IOException; import java.sql.Connection; import java.sql.DriverMan ...
- jQuery的表单选择器
1.常规选择器选择表单标签 $(function () { // var a = $("input").eq(0).val() // alert(a) // // var b = ...
- Python全栈工程师(Python3 所有基础内容 0-0)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 Python一个月的基础语法 基本就到这咯 接下来是数据 ...
- mybatis调用存储过程获得取返回值
总体思路:map传值 controller: Map<String,Object> m=new HashMap<String,Object>(); m.put("na ...
- 稀疏矩阵乘法 · Sparse Matrix Multiplication
[抄题]: 给定两个 稀疏矩阵 A 和 B,返回AB的结果.您可以假设A的列数等于B的行数. [暴力解法]: 时间分析: 空间分析: [思维问题]: [一句话思路]: 如果为零则不相乘,优化常数的复杂 ...
- 手动制作CA证书
一.安装 CFSSL 证书下载官方地址:https://pkg.cfssl.org #下面三个安装包,无需下载,之前百度云中的压缩包中都有[root@linux-node1 ~]# cd /usr/l ...