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. ...
随机推荐
- Delphi Firemonkey Button ImageList
Delphi Firemonkey Button ImageList 按钮图标 在上面 界面上,选择Button,放个ImageList控件,添加图标到ImageList. 然后关联Button和Im ...
- FoxPro 打开文件及使用SQL查询
set exclusive off OPEN DATABASE t:\tpswin\comp1\time.dbc SHARED select empl_no,date,in, bout, bin, o ...
- localStorage,sessionStorage
h5的本地存储. 现代浏览器普遍开始支持H5本地存储,localStorage.sessionStorage.可以用来代替cookie的一部分存储功能,他比cookie存储量更大.比较实用. 两者用法 ...
- Apt-Cacher-ng 搭建缓存服务器
docker pull minimum2scp/apt-cacher-ng docker run -d -p 3142:3142 --name=cache -e ACNG_BACKENDS_DEBIA ...
- war项目部署流程
准备: 1安装jdk1.7及以上版本 2安装tomcat7及以上版本 到%tomcat%/bin目录下记事本编辑server.xml, 配置<Connector>元素port端口,及< ...
- C#开发微信公众化平台
C#开发微信公众化平台 写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上 ...
- 用 RPM 打包软件,第 1 部分
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/ RPM(Red Hat Package Manager ...
- Centos 7 安装和配置Redis
一. 安装 操作系统:Centos 7. 最小化安装 redis版本: 4.0.6 服务器地址:*** 第一步:下载redis安装包(如果有新的,下载最新的redis安装包) wget http:// ...
- http://www.atool.org/keytype.php#0-tsina-1-53371-397232819ff9a47a7b7e80a40613cfe1
http://www.atool.org/keytype.php#0-tsina-1-53371-397232819ff9a47a7b7e80a40613cfe1
- Undo Architecture
[Undo Architecture] NSUndoManager is a general-purpose recorder of operations for undo and redo. NSU ...