题意:指令“R”机器人会向右走一步,“L”是向左。起初机器人在0位置,可以在除了0以外的任何位置放障碍,如果机器人的指令将使它走到障碍上,那这一步他会保持不动。要求让机器人最终结束的那一步一定只走过一次,也就是最后一次,这样称为完成指令。求在放障碍最少的情况下,能使机器人完成指令的方案数。

方法:

我去,这题意略长啊。

最开始从细节分析,然后枚举情况,感觉挺简单的,然后……就没有然后了……后面枚举情况的时候,好复杂,感觉怎么都想不全(至少短时间想不全诶)

然后看解题宝宝。(是报告)额,原来可以用模拟+二分解决~

真是暴力的思路呀,不过没有发现它的二分性质~

诶,以后要从暴力的方面先想象咯,或者,太复杂的时候,看看有没有简单的方法。。

好吧,怎么说就是,,,自己二分太弱。。

(我去,这解题报告写的都是什么。。。。。你是因为今天都没交所以占位的么。。哎哟我去)。。

代码

#include <cstdio>
#include <cstring> int len;
char str[];
bool testBlock(int pos) {
int now = ;
int left = ;
bool isNewLeft = true;
for (int i = ; str[i]; i++) {
if (str[i] == 'R') {
isNewLeft = false;
if (now+ == pos) ;
else now++;
}
else now--;
if (now < left) {
left = now;
isNewLeft = true;
}
}
return isNewLeft;
} int main() {
while (scanf("%s", str) != EOF) {
len = strlen(str);
if (str[len-] == 'R') {
for (int i = ; str[i]; i++) {
if (str[i] == 'R') str[i] = 'L';
else str[i] = 'R';
}
}
if (testBlock(len+)) {
puts("");
continue;
}
int l = ;
int r = len+;
while (l<r) {
int mid = (l+r+)/;
if (testBlock(mid)) l = mid;
else r = mid-;
}
printf("%d\n", l);
}
return ;
}

Codeforces 404E: Maze 1D(二分)的更多相关文章

  1. [Codeforces 1199C]MP3(离散化+二分答案)

    [Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r ...

  2. CodeForces 670D1 暴力或二分

    今天,开博客,,,激动,第一次啊 嗯,,先来发水题纪念一下 D1. Magic Powder - 1   This problem is given in two versions that diff ...

  3. codeforces 895B XK Segments 二分 思维

    codeforces 895B XK Segments 题目大意: 寻找符合要求的\((i,j)\)对,有:\[a_i \le a_j \] 同时存在\(k\),且\(k\)能够被\(x\)整除,\( ...

  4. Codeforces 626C Block Towers(二分)

    C. Block Towers time limit per test:2 seconds memory limit per test:256 megabytes input:standard inp ...

  5. codeforces 803D Magazine Ad(二分+贪心)

    Magazine Ad 题目链接:http://codeforces.com/contest/803/problem/D ——每天在线,欢迎留言谈论. 题目大意: 给你一个数字k,和一行字符 例: g ...

  6. Success Rate CodeForces - 807C (数学+二分)

    You are an experienced Codeforces user. Today you found out that during your activity on Codeforces ...

  7. Codeforces 1132D - Stressful Training - [二分+贪心+优先队列]

    题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有 $n$ 个学生,他们的电脑有初始电量 $a[1 \sim n]$,他们的电脑每分钟会耗 ...

  8. Codeforces 1114E - Arithmetic Progression - [二分+随机数]

    题目链接:http://codeforces.com/problemset/problem/1114/E 题意: 交互题,有一个 $n$ 个整数的打乱顺序后的等差数列 $a[1 \sim n]$,保证 ...

  9. Codeforces 660C - Hard Process - [二分+DP]

    题目链接:http://codeforces.com/problemset/problem/660/C 题意: 给你一个长度为 $n$ 的 $01$ 串 $a$,记 $f(a)$ 表示其中最长的一段连 ...

随机推荐

  1. MySQL数据库主从切换脚本自动化

    MySQL数据库主从切换脚本自动化 本文转载自:https://blog.csdn.net/weixin_36135773/article/details/79514507 在一些实际环境中,如何实现 ...

  2. ubuntu16.04安装 java JDK8

    安装openjdk1.更新软件包列表: sudo apt-get update 2.安装openjdk-8-jdk: sudo apt-get install openjdk-8-jdk 3.查看ja ...

  3. Golang 简单静态web服务器

    直接使用 net.http 包,非常方便 // staticWeb package main import ( "fmt" "net/http" "s ...

  4. 批量ping IP并检测IP延迟率和丢包率脚本

    脚本文件如下: #!/bin/bash #Author:Mr.Ding #Created Time:2018-08-26 07:23:44 #Name:ping.sh #Description: sh ...

  5. python入门:输出1-10的所有数

    #!/usr/bin/env python # -*- coding:utf-8 -*- #输出1-10的所有数 """ 变量kaishi的赋值为数字1,while 真, ...

  6. Linux安装OpenCV

    sudo apt-get update sudo apt-get install git git clone https://github.com/jayrambhia/Install-OpenCV ...

  7. urllib、requests库整理

  8. viewController备注

    1.按结构可以对iOS的所有ViewController分成两类: 1).主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UIT ...

  9. 牛客网 Wannafly挑战赛21 灯塔

    Z市是一座港口城市,来来往往的船只依靠灯塔指引方向.在海平面上,存在n个灯塔.每个灯塔可以照亮以它的中心点为中心的90°范围.特別地, 由于特殊限制,每个灯塔照亮范围的角的两条边必须要么与坐标轴平行要 ...

  10. HBase0.94.2-cdh4.2.0需求评估测试报告1.0之五

    根据以上图分析得出以下结论: 1. 在上面的hbase配置下,顺序和随机写记录(每条记录1K),每写入86-87M(大小可配)左右数据生成一个磁盘文件(store file). 2. 在上面的hbas ...