讨论 / 仅需两个数组的DP
WuK 2015-08-03 20:56:24
点我顶贴 收藏 删除
#include<iostream>

#include<string>

#include<vector>

using namespace std;

int main()

{

int ans=0;

string s;

cin>>s;

vector<int> f(s.size(),0),b(s.size(),0);//用vector数组

if(s[0]=='F')f[0]++;

for(unsigned int i=1;i!=s.size();++i)

{

f[i]=f[i-1];

b[i]=b[i-1];

if(s[i]=='F')f[i]++;

if(s[i]=='B')b[i]+=f[i];

if(s[i]=='I')ans+=b[i];

}

cout<<ans;

}

查看更多回复
提交回复