传送门

题意: 给n+1n+1n+1个点,每两个点之间有一个字符L(表示i+1连向i)L(表示i+1连向i)L(表示i+1连向i)或者R(表示i连向i+1)R(表示i连向i+1)R(表示i连向i+1),每秒可以移动一次,每移动一次每两个点之间的方向会互换,问每个点能到达的点个数最多是多少。

思路: 显然不管我们从这个点到了哪个点,我们都可以原路返回,这告诉我们向左向右是独立的。所以我们用dpdpdp维护每个点向左向右走的最远距离即可。这里只写出了向右的最远距离的转移方程。{dp[i]=max(dp[i],dp[i−2]+2),if (s[i]==L,s[i-1]==R)dp[i]=max(dp[i],1),if s[i]==L\begin{cases} dp[i]=max(dp[i],dp[i-2]+2), \text {if (s[i]==L,s[i-1]==R)} \\ dp[i]=max(dp[i],1), \text{if s[i]==L} \end{cases} {dp[i]=max(dp[i],dp[i−2]+2),if (s[i]==L,s[i-1]==R)dp[i]=max(dp[i],1),if s[i]==L​

//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n;
int l[N],r[N];
char s[N];int main()
{//  ios::sync_with_stdio(false);
//  cin.tie(0);int _; scanf("%d",&_);while(_--){scanf("%d%s",&n,s+1);l[0]=0;for(int i=1;i<=n;i++){if(i>=2&&s[i]=='L'&&s[i-1]=='R') l[i]=max(l[i],l[i-2]+2);if(s[i]=='L') l[i]=max(l[i],1);else l[i]=0;}r[n]=0;for(int i=n-1;i>=0;i--){if(i<=n-2&&s[i+1]=='R'&&s[i+2]=='L') r[i]=max(r[i],r[i+2]+2);if(s[i+1]=='R') r[i]=max(r[i],1);else r[i]=0;}for(int i=0;i<=n;i++) printf("%d ",l[i]+r[i]+1),l[i]=r[i]=0;}return 0;
}
/**/

Educational Codeforces Round 103 (Rated for Div. 2) D. Journey dp相关推荐

  1. Educational Codeforces Round 103 (Rated for Div. 2)A~E解题报告

    Educational Codeforces Round 103 (Rated for Div. 2) A. K-divisible Sum 原题信息 解题思路 AC代码 #include <b ...

  2. Educational Codeforces Round 103 (Rated for Div. 2)

    Educational Codeforces Round 103 (Rated for Div. 2) http://codeforces.com/contest/1476 A K-divisible ...

  3. Educational Codeforces Round 103 (Rated for Div. 2)前四题

    Educational Codeforces Round 103 (Rated for Div. 2) 第二次被别人hack,悲 A - K-divisible Sum 题意 给定两个整数 n,kn, ...

  4. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  5. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  6. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  7. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  8. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

  9. Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs

    传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici​个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...

最新文章

  1. 20、Flask实战第20天:Flask上下文
  2. 08-Windows Server 2012 R2 会话远程桌面-标准部署-使用PowerShell进行部署2-1
  3. stm32 带通滤波器_带通滤波 - 基于STM32芯片和TFT-LCD的便携式心电图仪设计
  4. 连续时间系统与离散时间系统的时域分析对比
  5. 想要设计自己的微服务?看这篇文章就对了 1
  6. 为什么要保持软件包依赖项自由循环的五个原因
  7. Git 查看帮助命令
  8. 菜鸟教程java二维数组_asp数组的使用介绍
  9. html表单的课后心得体会,web前端学习心得体会范文
  10. glyphicons-halflings-regular.woff2 文件 404
  11. VALSE学习(十):图像去模糊-image deblurring
  12. AI语音技术的架构(学习心得)
  13. 图像处理笔记——边缘检测算子
  14. 显意识和潜意识话题引发的深入思考
  15. linux系统运行程序设计,seL4的编译和运行
  16. 软件开发的早期为何要进行可行性研究?该从哪几个方面研究目标系统的可行性?...
  17. mysql 语言 总结
  18. 《机器学习》周志华 学习笔记
  19. Altium Designer 打开警报# could not start vault explorer.Please make sure that vault explorer extension
  20. Android培训班

热门文章

  1. go获取项目内所有proto_gRPC学习之三:初试GO版gRPC开发
  2. 目瞪口呆!137亿年的宇宙演化,竟然如此震撼!简直颠覆想象....
  3. 每日一笑 | IE的反射弧也太长了吧......
  4. 菜鸟学习数据科学家 5 大误区
  5. 人生苦短,我用Python!
  6. linux的自定义input,linux键值到Android键值的转换与自定义
  7. 扩展mysql_扩展mysql - 手把手教你写udf
  8. puppeteer 鼠标定位滑块_监听滑块滑动或滑块随鼠标移动 | JShare
  9. android最好的3d游戏机,终极盘点:Android必玩十大超猛3D游戏
  10. python新手入门项目推荐_推荐:一个适合于Python新手的入门练手项目