星光大道 李娜,淘宝免费刷钻软件,fx2me
目录
$\text{dp}$
一个数组$\text{qaq[4][101]}$
$\text{qaq[1][i]表示在i这个位置q的个数}$
$\text{qaq[2][i]表示在i这个位置qa的个数}$
$\text{qaq[3][i]表示在i这个位置能形成qaq的个数}$
对于第$i$个位置的$q$
可以组成$\text{qaq[2][i]}$个$qaq$
所以$\text{qaq[3][i]+=qaq[2][i]}$
对于第$i$个位置的$a$
可以组成$\text{qaq[1][i]}$个$qa$
所以$\text{qaq[2][i]+=qaq[1][i]}$
#include<iostream> #include<cstring> #include<string> #include<cstdio> #include<algorithm> using namespace std; string s; int qaq[4][101]; //qaq[1][i]表示在i这个位置q的个数 //qaq[2][i]表示在i这个位置qa的个数 //qaq[3][i]表示在这个位置能形成qaq的个数 inline int read(){ int x=0;bool f=0;char c=getchar(); while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return f?-x:x; } int main(){ cin>>s; int ns=s.length(); for(int i=0;i<ns;++i){ if(i!=0){ qaq[1][i]=qaq[1][i-1]; qaq[2][i]=qaq[2][i-1]; qaq[3][i]=qaq[3][i-1]; } if(s[i]=='q'){ qaq[1][i]++; qaq[3][i]+=qaq[2][i]; } if(s[i]=='a'){ qaq[2][i]+=qaq[1][i]; } } cout<<qaq[3][ns-1]; return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论