• 洛谷 CF894A QAQ


    题目

    CF894A

    思路

    ( ext{DP})
    一个数组( ext{QAQ[4][101]})
    ( ext{QAQ[1][i]表示在i这个位置q的个数})
    ( ext{QAQ[2][i]表示在i这个位置qa的个数})
    ( ext{QAQ[3][i]表示在i这个位置能形成QAQ的个数})
    对于第(i)个位置的(Q)
    可以组成( ext{QAQ[2][i]})(QAQ)
    所以( ext{QAQ[3][i]+=QAQ[2][i]})
    对于第(i)个位置的(A)
    可以组成( ext{QAQ[1][i]})(QA)
    所以( ext{QAQ[2][i]+=QAQ[1][i]})

    (Code)

    #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;
    }
    
  • 相关阅读:
    [C]static变量详解
    [LINUX]重定向
    [PHP]一些坑
    [PHP]常量的一些特性
    [数学]三角函数(一)
    [PHP]session的一些要点
    [C]控制外部变量访问权限的extern和static关键字
    c语言基础----共用体
    c语言基础----字符串数组
    c语言基础----函数库
  • 原文地址:https://www.cnblogs.com/poi-bolg-poi/p/11352470.html
Copyright © 2020-2023  润新知