题意:给一个01字符串s,找出s包含恰好k个1的连续字串个数

解法:

显然是简单的双指针or二分的题,但由于k=0的存在,使得双指针的边界条件十分难写,所以应该选择二分!

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
const int maxn=1000100;
const int INF=(1<<29); int k;
ll sum[maxn];
char s[maxn]; void solve(){
scanf("%s",s+1);
int n=strlen(s+1);
sum[0]=0;
for(int i=1;i<=n;i++) sum[i]=sum[i-1]+s[i]-'0';
ll res=0;
for(int i=1;i<=n;i++){
int l=lower_bound(sum+i,sum+n+1,k+sum[i-1])-sum;
int r=upper_bound(sum+i,sum+n+1,k+sum[i-1])-sum;
if(l==n+1) break;
res+=r-l;
}
cout<<res<<endl;
} int main(){
// freopen("in.txt","r",stdin);
while(cin>>k) solve();
return 0;
}

codeforces 165C Another Problem on Strings 二分or双指针的更多相关文章

  1. CodeForces 165C Another Problem on Strings(组合)

    A string is binary, if it consists only of characters "0" and "1". String v is a ...

  2. Codeforces 484B Maximum Value(排序+二分)

    题目链接: http://codeforces.com/problemset/problem/484/B 题意: 求a[i]%a[j] (a[i]>a[j])的余数的最大值 分析: 要求余数的最 ...

  3. CodeForces 570D - Tree Requests - [DFS序+二分]

    题目链接:https://codeforces.com/problemset/problem/570/D 题解: 这种题,基本上容易想到DFS序. 然后,我们如果再把所有节点分层存下来,那么显然可以根 ...

  4. CodeForces - 847B Preparing for Merge Sort 二分

    http://codeforces.com/problemset/problem/847/B 题意:给你n个数(n<2e5)把它们分成若干组升序的子序列,一行输出一组.分的方法相当于不断找最长递 ...

  5. Codeforces 955C - Sad powers(数论 + 二分)

    链接: http://codeforces.com/problemset/problem/955/C 题意: Q次询问(1≤Q≤1e5),每次询问给出两个整数L, R(1≤L≤R≤1e18),求所有符 ...

  6. Codeforces 778A:String Game(二分暴力)

    http://codeforces.com/problemset/problem/778/A 题意:给出字符串s和字符串p,还有n个位置,每一个位置代表删除s串中的第i个字符,问最多可以删除多少个字符 ...

  7. Codeforces 729C Road to Cinema(二分)

    题目链接 http://codeforces.com/problemset/problem/729/C 题意:n个价格c[i],油量v[i]的汽车,求最便宜的一辆使得能在t时间内到达s,路途中有k个位 ...

  8. Codeforces 1301B Motarack's Birthday(二分)

    题目链接:http://codeforces.com/problemset/problem/1301/B 思路: (1)都是-1的情况 (2)只有一个除-1之外的数 (3)至少有两个除-1之外的不同的 ...

  9. codeforces 340C Tourist Problem

    link:http://codeforces.com/problemset/problem/340/C 开始一点也没思路,赛后看别人写的代码那么短,可是不知道怎么推出来的啊! 后来明白了. 首先考虑第 ...

  10. codeforces B. Routine Problem 解题报告

    题目链接:http://codeforces.com/problemset/problem/337/B 看到这个题目,觉得特别有意思,因为有熟悉的图片(看过的一部电影).接着让我很意外的是,在纸上比划 ...

随机推荐

  1. k8s(docker-desktop)简单搭建zookeeper三节点集群

    前提 已经安装了docker-desktop,并且其中的kubernetes启动运行的.或者安装了k8s环境就行 可以正常下载dockerhub的镜像,这里采用了dockerhub官方制作的镜像 启动 ...

  2. LeetCode-1405 最长最快乐字符串

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-happy-string 题目描述 如果字符串中不含有任何 'aaa','bbb' ...

  3. python的常见问题解决

    1.python库下载安装慢:用清华镜像 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tun ...

  4. NOIP 2022 游记

    2022 NOIP (NOI Plus) 游记 Day-9 - Day-2 一句话总结,原神打的有点小多了.现在想想真的有点后悔(但也不是很手动滑稽,如果多做几个题或者把短板数论和数据结构看看也许这次 ...

  5. ubuntu系统的虚机 迁移到大厂的云服务器 后发现 实例内网一直都是原虚机的内网IP,

    ubuntu SMC迁移 后发现 实例内网一直都是原虚机的内网IPip a能看到现在的ECS内网以及原虚机的内网 但是ifconfig看只有原虚机的内网IP于是 尝试dhclient eth0重启内网 ...

  6. 把逗号分隔的String字符串转List<Integer>

    把逗号分隔的String字符串转int集合 集合或数组转变为逗号分隔的字符串的几种方式 1.自己编码实现 2.org.apache.commons.lang3.StringUtils 3.String ...

  7. Linux系统下追加记录到文件中的实例代码解读

    今日阅读Linux程序设计第四版,找到一个使用mmap函数的实例 问题描述 该程序主要定义一个结构体,随后利用mmap,msync以及munmap函数对其进行内容追加,定位以及修改内容的操作. 先自己 ...

  8. Python 闭包,生成式,推导式

    闭包概念 闭包,又称闭包函数或者闭合函数,其实和前面讲的嵌套函数类似, 不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数.一般情况下,返回的函数会赋值给一个变量,这个变量可以在后面被继 ...

  9. 获取Java运行环境信息

    设备相关信息 获取设备名称 import java.net.InetAddress; import java.net.UnknownHostException; try { InetAddress l ...

  10. cdn全栈加速nginx二层代理实现

    1 nginx.conf中添加配置如下: server { listen 5050; location / { proxy_pass http://代理IP:3333; proxy_set_heade ...