UVALive 4953 Wormly--【提醒自己看题要仔细】
有一条虫要过桥,桥有断的木板和好的木板。虫有L条腿B个身体,桥长N。01串表示桥的好坏。输出最少操作次数。
一开始虫的身体在最左B桥上,腿在最左L桥上,最后要到达最右B以及最右L。。。
操作有2种:①所有身体前进一步②某一条腿前进任意步。。。。整个过程要保证每个身体下只能有一条腿。。。。还有就是任意一条腿不能overtake(追上、赶上)其他腿。。
输入保证起点终点的桥都是完好的。。。
鉴于中文水平跟英语水平都不高。。。题意请自行YY脑补。。。
看题不仔细。。。。再次坑队友。。。。大家好,我是坑神=。=真感谢 前度和现队友 对我的体谅。。。。。
一开始没留意到overtake是这个意思(英语渣),然后上线段树、优先队列。。。。复杂度其实也很高。。。
赛后看清题意后。。在自己的基础上,加了个sum数组,参考队花NX的。。。。sum[i]表示前i个桥好桥的个数。。。不知为啥比队花的要快。。。看不懂队花的做法。。
这个复杂度大概是O(n)吧。。。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
using namespace std; #define ll long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define eps 1e-8
#define maxn 1000010 char str[maxn];
int sum[maxn];
int main(){
int t;
int leg,body,n;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&leg,&body,&n);
scanf("%s",str+);
if(leg==body){
printf("%s\n",body==n?"":"IMPOSSIBLE");
continue;
}
sum[]=;
for(int i=;i<=n;++i)sum[i]=sum[i-]+(str[i]-'');
bool can=true;
for(int i=body;i<=n;++i)if(sum[i]-sum[i-body]<leg){can=false;break;}
if(can==false){puts("IMPOSSIBLE");continue;}
ll ans=;
int l=;
int bb=,bb2=body;
while(l!=n+-leg){
if(bb<l&&bb2!=n){
int dx = min(l-bb,n-bb2);// bb2+dx<=n
ans+=dx,bb+=dx,bb2+=dx;
}
if(sum[bb2]-sum[l]<leg){can=false;break;}
while(sum[bb2]-sum[l]>=leg)++l;
ans+=leg;
}
if(can)printf("%lld\n",ans);
else puts("IMPOSSIBLE");
}
return ;
}
UVALive 4953 Wormly--【提醒自己看题要仔细】的更多相关文章
- UVALive.2995 Image Is Everything (思维题 三维坐标转换)
UVALive.2995 Image Is Everything (思维题 三维坐标转换) 题意分析 这题实在是没思路,就照着打了一遍,把不理解的地方,写了注释. #include <iostr ...
- THUPC2017看题总结
THUPC2017 看题总结 #2402. 「THUPC 2017」天天爱射击 / Shooting 果题. 求当前子弹能会使多少块木板损坏,发现因为木板会随着子弹数目的增加而更加容易损坏,故此询问具 ...
- THUPC2018看题总结
THUPC2018看题总结 #6387. 「THUPC2018」绿绿与串串 / String 据说是签到题啊. 首先根据题目的意思,我们发现如果能找到那个最后一次选择的对称轴岂不是美滋滋. 自然地,我 ...
- HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others) ...
- 欧拉计划(1~3)ps:以后看题一定要认真
那天的题挺简单的 下面来看下 No1 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get ...
- Hibernate 测试分析 好多题都是没认真看题错了。
此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通过属性作为筛选条件,如统计报表数据.使用交叉连 ...
- Proving Equivalences UVALive - 4287(强连通分量 水题)
就是统计入度为0 的点 和 出度为0 的点 输出 大的那一个,, 若图中只有一个强连通分量 则输出0即可 和https://www.cnblogs.com/WTSRUVF/p/9301096.htm ...
- UVaLive 6591 && Gym 100299L Bus (水题)
题意:略. 析:不解释,水题. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include < ...
- hdu 1005 1021 递归超限 找规律 // 只要看题中n较大都是有规律的
因为n>1000000000所以用递归 数组超限, 由递归函数f(n)=(A*f(n-1)+B*f(n-2))%7; 因为是除7的余数 因次一共有7*7=49种情况, 以后的值都和之前的对应相等 ...
随机推荐
- git SSH keys
An SSH key allows you to establish a secure connection between your computer and GitLab. Before gene ...
- ASP CDONTS.NEWMAIL组件发送电邮(附下载)
附CDONT.NEWMAIL组件下载地址:http://files.cnblogs.com/files/colinliu/cdonts.rar ASP常规发送方法: <% dim mail se ...
- 浏览器兼容性之Css篇
本文与上一篇随笔<浏览器兼容性之Javascript篇>有一定关联,下来我会继续不断总结,旨在解决浏览器兼容性,对遇到类似问题的同仁有所帮助,如有更多解决浏览器兼容性的案例还望大家分享一起 ...
- 2012Chengdu B (快速组合数)
B - Candy Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit St ...
- Maven 跳过测试目录
在命令行使用 mvn install -Dmaven.skipTests 或 mvn install -Dmaven.test.skip=true 或在pom.xml设置 <build> ...
- 微信公众平台开放JS-SDK(微信内网页开发工具包)
微信公众平台开放JS-SDK(微信内网页开发工具包),这次开放接口是质的飞跃,是对开发者和广大用户一个利好的消息.未来的公众号图文消息会更丰富多彩,准备脑洞大开吧!(第三方平台正式支持接入微信公众平台 ...
- WPF:类型转换器的实现
类型转换器提供字符串文本到值的转换方法来帮助WPF设计时在XAML中配置属性.具体用法可以参考MSDN的文档:如何:实现类型转换器. 下面是一个Demo,参考自<葵花宝典--WPF自学手册> ...
- Ubuntu下安装php7后无法启动Apache
报错提示:Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You nee ...
- Ubuntu编译PHP7问题
安装编译依赖 sudo apt-get -y install build-essential git autoconf sudo apt-get build-dep php5 sudo apt-get ...
- java web 相对路径中已/开头和不已/开头的区别
通俗的讲,有/会从跟目录开始算,没有会从当前目录开始算 1.前台页面 页面中向服务器页面请求静态资源且没有指定<base href="<%=basePath%>" ...