题目描述

将 n 块多米诺骨牌排成一排,每块骨牌垂直竖立。

开始时,同时将一些骨牌推倒,有的向右倒,有的向左倒。

保证这些开始就被推倒的骨牌中,任意两块倒向同一方向的骨牌之间都至少存在一块倒向反方向的骨牌。

每一秒后,每个向左倒的骨牌都会推倒其左侧相邻的骨牌,每个向右倒的骨牌都会推倒其右侧相邻的骨牌。

如果在某一时刻,某骨牌两侧的相邻骨牌同时倒向它,则由于力的平衡,该骨牌会保持垂直竖立不变。

下图给出了此过程的一个可能示例。

给定每块骨牌的初始状态,请你判断在推倒过程完全结束后,有多少块骨牌仍然保持垂直竖立。

输入格式
第一行包含整数 n。

第二行包含一个长度为 n 的字符串,其中的第 i 个字符表示第 i 个骨牌的初始状态:

  • L 表示该骨牌开始时向左倒。

  • R 表示该骨牌开始时向右倒。

  • . 表示该骨牌开始时不倒。
    保证,对于 (i,j):

  • 如果 i<j 且 si 和 sj 均为 L,则一定存在 k 满足 i<k<j 且 sk 为 R

  • 如果 i<j 且 si 和 sj 均为 R,则一定存在 k 满足 i<k<j 且 sk 为 L

输出格式
一个整数,表示最终保持垂直竖立的骨牌数量。

数据范围
前 6 个测试点满足 1≤n≤15。
所有测试点满足 1≤n≤3000。

输入样例1:

14
.L.R...LR..L..

输出样例1:

4

输入样例2:

5
R....

输出样例2:

0

输入样例3:

1
.

输出样例3:

1

题意

  • 题意:多米诺骨牌放置顺序为 R L R …
  • 即:不会连续出现R,或者L

题解:

  • 代码解释
    变量l,从头开始找直至不是.
    变量r,从尾开始找直至不是.
    最后在lr的范围查询,如果是.cnt++,如果到L了,则 res + cnt%2,否则从lr全部为.,res + cnt
    注意:res在加过cnt后要初始cnt的值,以进行下次判断

代码

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int main()
{int n;string str;cin >> n >> str;int l = 0;while(l < n && str[l] == '.') l++;int res = 0;if(l == n) res = n;else{if(str[l] == 'R') res = l;int r = n - 1;while(str[r] == '.') r--;if(str[r] == 'L') res += n - r - 1;for(int i = l + 1,cnt = 0;i <= r;i++){if(str[i] == '.') cnt++;else {if(str[i] == 'L') res += cnt%2;else res += cnt;cnt = 0;}}}cout << res << endl;return 0;
}

AcWing 4783. 多米诺骨牌相关推荐

  1. Blender多米诺骨牌动画学习教程 The Impossible Domino Run in Blender

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小:8.53 GB 含课程文件 |时长:8h 20 ...

  2. S6 edge+的多米诺骨牌效应:大屏的趋势

    日前,为庆祝三星S6 edge+国行版的顺利发售,三星盖乐世社区的一些粉丝自发组织了三星疯狂"盖星人"第一期活动--活动现场除了可以对S6 edge+进行全方面体验之外,还将演示著 ...

  3. P1282 多米诺骨牌 (差值DP+背包)

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  4. P1282-多米诺骨牌【dp,背包】

    正题 评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1282 题目大意 n个多米诺骨牌,上下值不相同,可以交换一个多米诺上 ...

  5. 【动态规划】 多米诺骨牌 (ssl 1632/luogu 1282)

    多米诺骨牌多米诺骨牌多米诺骨牌 Description Input 输入文件的第一行是一个正整数n(1≤n≤1000),表示多米诺骨牌数.接下来的n行表示n个多米诺骨牌的点数.每行有两个用空格隔开的正 ...

  6. 【01背包】洛谷P1282多米诺骨牌

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  7. 多米诺骨牌v.1MEL语言

    // //  //Script Name:多米诺骨牌v.1 //Author:疯狂小猪  //Last Updated: 2011.10.5 //Email:wzybwj@163.com //  // ...

  8. leetcode 1128. 等价多米诺骨牌对的数量

    给你一个由一些多米诺骨牌组成的列表 dominoes. 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的. 形式上,dominoes[i] = ...

  9. LeetCode 1128. 等价多米诺骨牌对的数量(哈希)

    1. 题目 给你一个由一些多米诺骨牌组成的列表 dominoes. 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的. 形式上,dominoe ...

最新文章

  1. 在一个数组中查找两个重复出现的数字
  2. 边缘计算芯片格局分析
  3. C 语言编程 — 高级数据类型 — 结构体与位域
  4. C++中placement new操作符(经典)
  5. 回答一位朋友关于 SAP SRM 行业 转 CRM 行业的咨询
  6. C语言宏定义中UL的含义
  7. SpringCloud学习笔记003---服务提供者和服务消费者补充:反向代理
  8. 【岗位详情】腾讯广告大数据开发工程师(北京)
  9. 如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)
  10. 矩阵的谱(半径)及其性质
  11. jquery砸金蛋 高仿阿里旅游砸金蛋
  12. Linux-软件包管理-rpm命令管理-安装-卸载
  13. 如何把滑动条变好看一点
  14. Tomcat的startup.bat闪退问题
  15. 惠普打印机没有扫描问题解决
  16. 鼠标右键中新建选项消失
  17. vs2008简体中文正式版序列号和下载地址
  18. 关于提高游戏中的打击感
  19. 单目标跟踪 (一)相关滤波器 方法综述
  20. 基于人工智能的滚动轴承PHM方法综述

热门文章

  1. L2-039 清点代码库 (25 分)
  2. java.lang.SecurityException: getDeviceId: The user 10158 does not meet the requirements to access de
  3. 浅析BootStrap
  4. 3G带动企业移动管理信息化应用 直播视频
  5. 阿里云虚拟主机wordpress伪静态设置Nginx设置
  6. 视频|《8问》浙江大学张宏鑫:边缘计算或许是区块链的福音
  7. bat备份MySQL失败_bat备份mysql的方法
  8. 基于JAVA服务预约家教网站系统设计与实现 开题报告
  9. 【集创赛】arm杯一等奖作品:智能BLDC驱动系统
  10. 复旦EMBA:2021,相信未来,从不确定中找到属于自己的确定