BZOJ2268 : Wormly

时间:2023-02-22 20:48:29

考虑头部,一定是能向前就向前,因此是最左边的腿往右$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的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

随机推荐

  1. asp&period;net MVC4——省市三级联动

    controller: public ActionResult GetCity(string id) { AreaService _areaSvc = new AreaService(); List& ...

  2. GCD深入学习&lpar;1&rpar;dispatch&lowbar;semaphore

    dispatch_semaphore信号量是一种基于计数器的一种多线程同步机制 在多个线程访问共有资源的时候,会因为多线程的特性引发数据出错. - (void)addData { dispatch_q ...

  3. git gui 学习

    目的 自己以前使用过3,4个月的SVN,因为公司使用的是git,git gui.所以打算自学git gui,并记录一下学习心得.^_^ 原因 为什么不是学命令行而是用git gui呢.我觉得首先因为公 ...

  4. 易语言调用windows消息函数

    1.SendMessageCallbackA的调用方法 .版本2 .DLL命令 发送消息返回_, 整数型, "user32.dll", "SendMessageCallb ...

  5. SQLServer 自增主键创建&comma; 指定自增主键列值插入数据&comma;插入主键

    http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...

  6. 学习 Linux,101&colon; 使用基本 SQL 命令

    概述 在本教程中,将学习结构化查询语言 (SQL),包括: 使用基本 SQL 命令 执行基本数据操作 本教程将简要介绍您需要知道的与 LPI 102 考试相关的 SQL 概念.   回页首 数据库和 ...

  7. dotnet core多平台开发体验

    前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...

  8. Win10 &plus; Python &plus; GPU版MXNet &plus; VS2015 &plus; RTools &plus; R配置

    最近入手一台GTX 1070的笔记本,手痒想在win10上试下GPU跑模型,所以就有了接下来的安装GPU版mxnet的坎坷历程,经过多重试验终于搞定了python和R安装mxnet,现将主要点记录如下 ...

  9. HADOOP源码分析之RPC(1)

    源码位于Hadoop-common ipc包下 abstract class Server 构造Server protected Server(String bindAddress, int port ...

  10. Laravel5&period;7 跨域解决

    先检查app/Http/Middleware/ 下是否有EnableCrossRequestMiddleware.php 这个文件,没有此文件使用此命令创建 php artisan make:midd ...

相关文章