点击打开链接

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

题目描述

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

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

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

小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. win10 修改hosts

    win10 修改hosts,是权限的问题, C:\Windows\System32\drivers\etc\hosts 添加权限即可. http://jingyan.baidu.com/article ...

  2. javascript数组操作(创建、元素删除、数组的拷贝)

    这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...

  3. CentOS 7 调整 home分区 扩大 root分区

    总体过程: 把/home内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/root文件系统,新建/home ,恢复/home内容 1.查看分区 df -h 2.备份home分区文件 tar c ...

  4. Jenkins修改端口号(成功率高)

    转载:http://blog.csdn.net/dzh0622/article/details/52470634 Jenkins默认的端口号是8080,修改方法: 1. 打开终端,cd 到Jenkin ...

  5. netstat/lsof

    netstat/lsof netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况 -a 显示一个所有的有效连接信息列表(包括已建立的连接,也 ...

  6. vargant

    http://blog.csdn.net/openn/article/details/54927375

  7. Linux服务器上日志报com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1783 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

    在做查询数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是MySQL的max_allowed_packet设置过小引起的,我一开始设置的是1M,后来改为了20M ...

  8. Linux安装服务器

    [实验:按照下述要求安装一台Server] /boot 100M / 10G /data 50G /var/ftp LVM 6G :/dev/vg_ftp/lv_ftp swap 2048M 主机名: ...

  9. Swift实现UIKit Dynamic动画

    iOS7引入了UIKit Dynamics,可以帮助开发者开发出更接近真实世界的动画效果.之前,用户如果要做出这样的效果,需要话很多的时间在物理计算和Core Animation上.现在,所有的一切都 ...

  10. Debug_with_docker_in_pycharm

    Debug with docker in pycharm Why As I really really appreciate it that we can have a isolated develo ...