BestCoder Round #89 1001 /hdu 5944/ Fxx and string

来源:互联网 发布:域名在微信内禁止访问 编辑:程序博客网 时间:2024/06/02 01:49

Fxx and string

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 722    Accepted Submission(s): 315


Problem Description
Young theoretical computer scientist Fxx get a string which contains lowercase letters only.

The string S contains n lowercase letters S1S2Sn.Now Fxx wants to know how many three tuple (i,j,k) there are which can meet the following conditions:

1、i,j,k are adjacent into a geometric sequence.

2、Si='y',Sj='r',Sk='x'.

3.Either j|i or j|k
 

Input
In the first line, there is an integer T(1T100) indicating the number of test cases.

T lines follow, each line contains a string, which contains only lowercase letters.(The length of string will not exceed 10000).
 

Output
For each case, output the answer.
 

Sample Input
2xyyrxxyyrrxxxxx
 

Sample Output
02
 

Source
BestCoder Round #89
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:  5960 5959 5958 5957 5956 
 

..当时没考虑反过来的情况,大数据没过

枚举公比和首元素即可

#include<stdio.h>#include<string.h>char ch[10005];int main(){int t,n,i,j,k,ans;scanf("%d",&t);getchar();while(t--){ans=0;scanf("%s",ch+1);//printf("%s\n",ch+1);n=strlen(ch+1);//printf("%d",n);for(i=1;i<=n;i++){for(j=2;j*j*i<=n;j++){if(ch[i]=='y'&&ch[i*j]=='r'&&ch[i*j*j]=='x'){ans++;}else if(ch[i]=='x'&&ch[i*j]=='r'&&ch[i*j*j]=='y'){ans++;}}}printf("%d\n",ans);}return 0;}



0 0
原创粉丝点击