概述
Fxx and string
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 424 Accepted Submission(s): 193
Problem Description
Young theoretical computer scientist Fxx get a string which contains lowercase letters only.
The string S contains n lowercase letters S1S2…Sn.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(1≤T≤100) 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
2
xyyrxx
yyrrxxxxx
Sample Output
0
2
正反个判断一次~~~注意优化~~
AC代码 :
#include<bits/stdc++.h>
char st[10010];
int main()
{
int T;
scanf("%d",&T);
while(T--){
int ans = 0;
scanf("%s",st + 1);
int nl = strlen(st + 1);
for(int i = 1 ; i < nl ; i++)
if(st[i] == 'y'){
for(int j = i * 2 ; j < nl ; j += i)
if(st[j] == 'r'){
int a = j / i * j;
if(a <= nl && st[a] == 'x')
ans++;
}
}
for(int i = 1 ; i < nl ; i++)
if(st[i] == 'x'){
for(int j = i * 2 ; j < nl ; j += i)
if(st[j] == 'r'){
int a = j / i * j;
if(a <= nl && st[a] == 'y')
ans++;
}
}
printf("%dn",ans);
}
return 0;
}
最后
以上就是傻傻哈密瓜为你收集整理的【HDU 5944 Fxx and string】+ 优化的全部内容,希望文章能够帮你解决【HDU 5944 Fxx and string】+ 优化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复