题解:AT_guildfes_2026_final_c EGFカウント
题目大意
给你一个字符串 \(S\),在其中找一个三元组 \((i,j,k)\) 使得:
- $ 1\le i < j < k \le N $
- $ S_i= $
E - $ S_j= $
G - $ S_k= $
F
统计有多少个三元组满足以上条件。
sol
注意到 \(3 \le n \le 50\) 显然想到 \(O(n^3)\) 的暴力枚举,得以下代码。
:::info[code]{open}
#include<bits/stdc++.h>
using namespace std;
int n;
int ans;
string s;//字符串
int main(){
cin>>n;
cin>>s;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){//暴力枚举
if(s[i]=='E'&&s[j]=='G'&&s[k]=='F'){//符合条件就累加答案
ans++;
}
}
}
}
cout<<ans;
return 0;
}
:::

浙公网安备 33010602011771号