点击打开链接

1415: 小ho的01串 [字符串]

题目描述

有一个由0和1组成的字符串,它好长呀--------一望无际

恩,说正题,小ho的数学不太好,虽然是学计算机的但是看见0和1也是很头疼的,

现在他的老师想让他计算出来包含K个1的子串有多少个-----呀,头要炸了!!!

小ho知道你的数学棒棒哒,所以来找你帮忙了。

输入

第一行是一个数K。

第二行是一个字符串str。

0 < |str| ≤ 106

输出

一个数S,代表了满足条件的个数。

样例输入

2
101010

样例输出

6
57

C/C++ (clang++ 3.3)



1
#include<iostream>
2
#include<cstdio>
3
#include<cstdlib>
4
#include<cstring>
5
#include<algorithm>
6
#include<queue>
7
#include<list>
8
#include<cmath>
9
#include<vector>
10
using namespace std;
11
const int maxn=1000010;
12
char str[maxn];
13
long long num[maxn];
14
int main()
15
{
16
//  freopen("in1.txt","r",stdin);   //查BUG
17
//  freopen("out1.txt","w",stdout);
18
    long long ans=0,k,cnt=1;
19
    scanf("%lld%s",&k,str);
20
    long long l=1,r,len=strlen(str),temp=0;num[0]=-1;
21
    if(k==0)
22
    {
23
        l=0;
24
        for(long long i=0;i<len;++i)
25
        {
26
            if(str[i]=='1')
27
            {
28
                r=i-l;l=i+1;
29
                ans=ans+r*(r+1)/2;
30
                //cout<<ans<<endl;
31
            }
32
        }
33
        r=(len-l);
34
        ans=ans+r*(r+1)/2;
35
        cout<<ans<<endl;
36
        return 0;
37
    }
38
    for(long long i=0;i<len;++i)
39
    {
40
        if(str[i]=='1')
41
        {
42
            temp++;num[cnt++]=i;
43
        }
44
        if(temp==k+1)
45
        {
46
            ans=ans+(num[l]-num[l-1])*(num[cnt-1]-num[cnt-2]);l++;temp--;
47
            //cout<<num[l]-num[l-1]<<endl;
48
        }
49
    }
50
    if(temp==k)
51
    {
52
        ans=ans+(num[l]-num[l-1])*(len-num[cnt-1]);
53
    }
54
    cout<<ans<<endl;
55
    return 0;
56
}


1415: 小ho的01串 [字符串]的更多相关文章

  1. COGS 862. 二进制数01串【dp+经典二分+字符串】

    862. 二进制数01串 ★   输入文件:kimbits.in   输出文件:kimbits.out   简单对比 时间限制:1 s   内存限制:128 MB USACO/kimbits(译 by ...

  2. hihocoder1545 : 小Hi和小Ho的对弈游戏(树上博弈&nim博弈)

    描述 小Hi和小Ho经常一起结对编程,他们通过各种对弈游戏决定谁担任Driver谁担任Observer. 今天他们的对弈是在一棵有根树 T 上进行的.小Hi和小Ho轮流进行删除操作,其中小Hi先手. ...

  3. 洛谷P2727 01串 Stringsobits

    P2727 01串 Stringsobits 24通过 55提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 这题的思路是啥啊!!!跪求- 题目背景 考虑 ...

  4. C++实现01串排序

    题目内容:将01串首先按长度排序,长度相同时,按1的个数从少到多进行排序,1的个数相同时再按ASCII码值排序. 输入描述:输入数据中含有一些01串,01串的长度不大于256个字符. 输出描述:重新排 ...

  5. 【巧妙】【3-21个人赛】Problem C 01串

    Problem C Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Sub ...

  6. bitset(01串)优化

    bitset的经典使用: 见代码及注释: #include<bitset> #include<algorithm> using namespace std; //只需调用< ...

  7. ACM学习历程——hihoCoder挑战赛10A 01串(策略)

    时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和" ...

  8. hiho #1144 : 01串(模拟)

    #1144 : 01串 时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001 ...

  9. 51nod 1391:01串

    1391 01串 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给定一个01串S,求出它的一个尽可能长的子串S[i. ...

随机推荐

  1. 几组不错的X264自定义编码<转>

    转帖地址:http://tieba.baidu.com/p/4201033507 一般直播时使用A设定即可.你尝试设置并找出你最满意的设定 A为最需最低CPU资源,E为最高. A8x8dct=1 aq ...

  2. Elasticsearch 2.4.1 Bigdesk 插件安装

    简介: Elasticsearch 2.4.1 安装 bigdesk bigdesk 是一个 ES 集群监控工具,可以检测到集群状态.各节点信息,包括 JVM.Thread Pools.OS.Proc ...

  3. sass compact方法的实现

    不想依赖compass的编译器,但sass的又没有compact方法,于是自己造轮子.最早时在stackoverflow看到一个 @function compact($var-1, $var-2: f ...

  4. MVC4中压缩和合并js文件和样式文件

    1.在App_Start文件夹中BundleConfig.cs类中添加相应的文件 1.1bundles.Add(new ScriptBundle("~/bundles/adminJs&quo ...

  5. Python运维开发基础09-函数基础

    上节作业回顾 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 实现简单的shell命令sed的替换功能 import ...

  6. Spring IoC底层原理

    -------------------siwuxie095                                 Spring IoC 底层原理         1.IoC 即 Invers ...

  7. SQLServer性能优化之---水平分库扩展

      汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 第一次引入文件组的概念:http://www.cnblogs.com/dunitia ...

  8. 32-python代码打包成exe文件-pyinstaller

    安装 pyinstaller: pip install pyinstall 简单使用 最简单的使用方式是运行 pyinstaller myscript.py 来生成可执行文件,其中 myscript. ...

  9. [Selenium]怎样等待元素出现之后再消失,譬如Loading icon

    界面上有些元素是要先等它出现,再等它消失,譬如loading icon 这个是等多个loading icon出现后消失 /** * Wait for loading icon disappear in ...

  10. qt学习(三) qt布局

    使用横向与竖向.网格三种布局嵌套使用后可以组合出很复杂的界面. 这里向大家推荐这篇博客 http://www.cnblogs.com/Bonker/p/3454956.html 我这里使用布局做了一个 ...