博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rq-165-FBI序列
阅读量:4479 次
发布时间:2019-06-08

本文共 1009 字,大约阅读时间需要 3 分钟。

传送门:http://www.rqnoj.cn/Problem_165.html

f[i]表示前i个有多少个FBI
g[i]表示前i个有多少个FB
t[i]表示前i个有多少个F
假设现在到第i位
如果ch[i]=='F'
f[i]=f[i-1],g[i]=g[i-1],t[i]=t[i-1]+1;
如果ch[i]=='B'
f[i]=f[i-1],g[i]=g[i-1]+t[i-1],t[i]=t[i-1]
如果ch[i]=='I'
f[i]=f[i-1]+g[i-1],g[i]=g[i-1],t[i]=t[i-1]
时间复杂度:O(n)

Code

View Code
1 #include 
2 using namespace std; 3 4 string s; 5 int f[2100],g[2100],t[2100]; 6 7 int main() 8 { 9 freopen("in.txt","r",stdin);10 freopen("out.txt","w",stdout);11 12 cin>>s;13 for(int i=1;i<=s.size();i++)14 {15 if( s[i-1] == 'O' )16 f[i]=f[i-1],g[i]=g[i-1],t[i]=t[i-1];17 else if( s[i-1] == 'F' )18 f[i]=f[i-1],g[i]=g[i-1],t[i]=t[i-1]+1;19 else if( s[i-1] == 'B' )20 f[i]=f[i-1],g[i]=g[i-1]+t[i-1],t[i]=t[i-1];21 else if( s[i-1] == 'I' )22 f[i]=f[i-1]+g[i-1],g[i]=g[i-1],t[i]=t[i-1];23 }24 cout<
<

转载于:https://www.cnblogs.com/AlphaX/archive/2012/10/23/2735319.html

你可能感兴趣的文章
正则表达式
查看>>
Mysql的DATE_FORMAT()日期格式转换
查看>>
SparkStreaming入门及例子
查看>>
Web应用增加struts2支持
查看>>
java程序——凯撒加密
查看>>
Windows Store App之数据存储
查看>>
English class 82 The Importance of traveling
查看>>
python用递归函数解汉诺塔游戏
查看>>
Redis与Python交互
查看>>
Maximum-SubsequenceSum
查看>>
常用的一些shell变量
查看>>
Android无法删除项目+导入项目报错
查看>>
poj 2349(最小生成树应用)
查看>>
python接口自动化测试二十五:执行所有用例,并生成HTML测试报告
查看>>
c# 指定的存储区提供程序在配置中找不到,或者无效
查看>>
最简陋的python数据
查看>>
第一堂java web课
查看>>
操作系统简介
查看>>
第1周小组博客作业--1703班06组
查看>>
vue项目中icon图标的完美引入
查看>>