codeforces 165C Another Problem on Strings 二分or双指针
题意:给一个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双指针的更多相关文章
- CodeForces 165C Another Problem on Strings(组合)
A string is binary, if it consists only of characters "0" and "1". String v is a ...
- Codeforces 484B Maximum Value(排序+二分)
题目链接: http://codeforces.com/problemset/problem/484/B 题意: 求a[i]%a[j] (a[i]>a[j])的余数的最大值 分析: 要求余数的最 ...
- CodeForces 570D - Tree Requests - [DFS序+二分]
题目链接:https://codeforces.com/problemset/problem/570/D 题解: 这种题,基本上容易想到DFS序. 然后,我们如果再把所有节点分层存下来,那么显然可以根 ...
- CodeForces - 847B Preparing for Merge Sort 二分
http://codeforces.com/problemset/problem/847/B 题意:给你n个数(n<2e5)把它们分成若干组升序的子序列,一行输出一组.分的方法相当于不断找最长递 ...
- Codeforces 955C - Sad powers(数论 + 二分)
链接: http://codeforces.com/problemset/problem/955/C 题意: Q次询问(1≤Q≤1e5),每次询问给出两个整数L, R(1≤L≤R≤1e18),求所有符 ...
- Codeforces 778A:String Game(二分暴力)
http://codeforces.com/problemset/problem/778/A 题意:给出字符串s和字符串p,还有n个位置,每一个位置代表删除s串中的第i个字符,问最多可以删除多少个字符 ...
- Codeforces 729C Road to Cinema(二分)
题目链接 http://codeforces.com/problemset/problem/729/C 题意:n个价格c[i],油量v[i]的汽车,求最便宜的一辆使得能在t时间内到达s,路途中有k个位 ...
- Codeforces 1301B Motarack's Birthday(二分)
题目链接:http://codeforces.com/problemset/problem/1301/B 思路: (1)都是-1的情况 (2)只有一个除-1之外的数 (3)至少有两个除-1之外的不同的 ...
- codeforces 340C Tourist Problem
link:http://codeforces.com/problemset/problem/340/C 开始一点也没思路,赛后看别人写的代码那么短,可是不知道怎么推出来的啊! 后来明白了. 首先考虑第 ...
- codeforces B. Routine Problem 解题报告
题目链接:http://codeforces.com/problemset/problem/337/B 看到这个题目,觉得特别有意思,因为有熟悉的图片(看过的一部电影).接着让我很意外的是,在纸上比划 ...
随机推荐
- 重新配置 Idea Webapp 部署
一般 Idea 创建一个 Webapp 时已经自动配置好了,但难免出现意想不到的意外,例如,访问资源 404,编译之后没有把 jsp 页面部署进去等问题. 1️⃣第一步,配置 Project Sett ...
- CRM管理系统界面
- Jmix- 业务系统高效开发的少代码平台
企业在数字化转型的过程中,都面临将现有的业务流程进行"软件化"的过程.然而,在我们的印象中,通常会觉得针对业务系统的软件开发不是特别高效.这背后有很多原因,从开发角度看,有一个主要 ...
- SAP 删除始终使用选定的格式
修改默认格式 se38 SALV_BS_ADMIN_MAINTAIN
- ES6判断对象是否为空
1.ES6判断对象是否为空{} let obj = {} if(Object.keys(obj).length == 0){ console.log("对象是空的") }else{ ...
- 在centos环境下利用docker安装kail
配置好国内阿里云镜像 vim /etc/docker/daemon.json {"registry-mirrors":["https://cq20bk8v.mirror ...
- Docker部署Minio文件系统
MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon S3 云存储服务兼容的 API. 使用 MinIO 为机器学习.分析和应用程序数据工作 ...
- iOS开发之桌面快捷方式Quick Actions
长按桌面APPIcon图标快捷操作添加功能开发 在支持 3D Touch 的设备上,Quick Actions 可以让用户更快,更少的操作步骤去完成他们最常做的事情,其中这么多操作可以通过主屏幕直接完 ...
- 转发-》c++ stl multimap基本操作使用技巧详细介绍
c++ stl multimap基本操作使用技巧详细介绍 C++ stl Multimap 和C++ stl map 很相似,但是MultiMap允许重复的元素. C++ stl Multima ...
- signalR从外部服务中推送消息和全局参数的设置
在前面的章节中,我们都是采用两方模式, 客户端 <-> 服务端,也就是说在这种情况下如果有第三方如果有通知的没有办法插足的,下面解决方案 1:和之前的代码一样,在index页面加一个客户端 ...