codeforces2016
来源:互联网 发布:西安信利软件 编辑:程序博客网 时间:2024/05/02 01:47
来源:codeforces405B
这个题目一开始没有想到有O(n)的解法,有点撒。。。
是这样,我们从后向前看,当然也有向后,先如果我们遇到.,那么用一个数记下来+1,如果我们遇到L,则说明,前面的都是站立的,但是我们遇到一个R,那么需要找前面是否有过一个L,有的话就可以站立t%2,最后部分,如果前面有一个L,则是全部倒掉的。。。
代码:
#include <iostream>#include <cstdio>using namespace std;const int MAXN=3000+10;char ch[MAXN];int main(){int n;cin>>n;for(int i=0;i<n;i++){ cin>>ch[i];}int ans=0;int d=0;char x;for(int i=n-1;i>=0;i--){ if(ch[i]=='.')d++; else if(ch[i]=='L'){ ans+=d; d=0; x=ch[i]; } else { if(x=='L') ans+=(d%2); d=0; x='R'; }}if(x!='L') ans+=d;cout<<ans<<endl;return 0;}
1 0
- codeforces2016
- codeforces2016
- 无法启动此程序,因为计算机中丢失MFC42D.DLL。尝试重新安装该程序以解决此问题
- HDU—— 2005 第几天? (java版)
- lazy 延迟加载策略
- 项目总结之关于系统通讯录的操作
- 六种方式实现hibernate查询
- codeforces2016
- 有意思的分支预测
- vim+python+OpenCV学习七 : Sobel算子、Laplacian算子和Canny边缘检测
- 常用的视频格式mime设置
- android的Toast
- 学会使用listview的自定义baseadapter适配器
- 安装Java jdk1.6或1.7的详细步骤和配置环境变量的另类办法
- Json格式化form表单里面需要提交的数据
- iOS开发中的零碎知识点笔记 韩俊强的博客