[BC#89A]Fxx and string

来源:互联网 发布:jsp asp php 编辑:程序博客网 时间:2024/05/22 13:57

题目大意

给定一个字符串求有多少三元组(i,j,k)满足i、j、k形成等比数列,且s[i]=’y’,s[j]=’r’,s[k]=’x’

瞎做

枚举i和j即可求k,这个枚举是n log n的。
注意不一定i

#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long ll;const int maxn=10000+10;char s[maxn];int i,j,k,l,t,n,m,ca;ll ans;int main(){    scanf("%d",&ca);    while (ca--){        scanf("%s",s+1);        n=strlen(s+1);        ans=0;        fo(i,1,n)            if (s[i]=='y')                fo(j,2,n/i){                    if ((ll)i*j*j>n) break;                    if (s[i*j]!='r') continue;                    if (s[i*j*j]=='x') ans++;                }        fo(i,1,n)            if (s[i]=='x')                fo(j,2,n/i){                    if ((ll)i*j*j>n) break;                    if (s[i*j]!='r') continue;                    if (s[i*j*j]=='y') ans++;                }        printf("%lld\n",ans);    }}
0 0
原创粉丝点击