BZOJ2268 : Wormly
考虑头部,一定是能向前就向前,因此是最左边的腿往右$b-1$个位置。
头部移动之后,腿部就要相应地移动到区间内最靠右的$l$个$1$之上。
若头部和腿部都不能移动,检查是否到达终点即可。
用前缀和以及对前缀和做映射来支持查询。
时间复杂度$O(n)$。
#include<cstdio>
const int N=1000010;
int T,l,b,n,i,h,f,nh,nf,s[N],p[N];char a[N];long long ans;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d%d%s",&l,&b,&n,a+1);
for(i=1;i<=n;i++)if(a[i]=='0')s[i]=s[i-1];else p[s[i]=s[i-1]+1]=i;
ans=n-b,h=b,f=l;
while(1){
nh=p[s[f]-l+1]+b-1;
if(nh>n)nh=n;
nf=p[s[nh]];
if(nh==h&&nf==f)break;
h=nh;
if(nf>f)f=nf,ans+=l;
}
if(h<n)puts("IMPOSSIBLE");else printf("%lld\n",ans);
}
return 0;
}
BZOJ2268 : Wormly的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- openssl中RSA数字签名的使用
参考: OpenSSL命令行工具验证数字签名 客户端需要生成一对密钥,服务器需要生成一对密钥,分别记为client_private.pem/client_public.pem和server_priva ...
- vue——vue-resource
get请求 getSearch () { return this.$http.get('https://xxx.xxx.com/xxx.json', {params: {name: this.sear ...
- (Access denied for user 'root'@'slaver1' (using password: YES))
1.问题描述,启动azkaban的时候报如下所示的错误.之前使用azkaban是root用户,今天使用hadoop用户进行配置和使用,报这个错,说是root连接mysql拒绝了. [hadoop@sl ...
- jmeter4.x centos7部署笔记
1. jmeter依赖 java8或以上版本 安装 java : 参考 https://tecadmin.net/install-java-8-on-centos-rhel-and-fedora/ ...
- json2csharp & json 格式化
json2csharp: http://json2csharp.com/ bejson: http://www.bejson.com/
- jenkins X实践系列(4) —— jenkins X 构建提速
jx是云原生CICD,devops的一个最佳实践之一,目前在快速的发展成熟中.最近调研了JX,这里为第4篇,介绍如何加入jx构建和部署. builder镜像下载慢 先在一台机器上下载好,然后放到本地仓 ...
- django源码分析
原文网址 https://www.jianshu.com/p/17d78b52c732?utm_campaign=maleskine&utm_content=note&utm_medi ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-1目录
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- eclipse发布web
elipse集成tomcat 在实际开发中通常在eclipse中集成tomcat,这样在开发中更方便一些.打开eclipse,选择界面下方的servers选项,点击no servers are ava ...
- Python mysql sql基本操作
一.创建数据库,编码格式为utf-8 create database s12day9 charset utf8; 二.表操作 1.创建表 use s12day9; create table stude ...