本来是一道水题,不过这是我做的第一道BC题,发出来纪念一下~~~~~
题目可以在杭电上交,题号:5944.
主要思路:其实就是暴力求解,不过需要考虑到1,2,4和4,2,1的情况。还有就是一个小技巧:cin>>str+1,可以直接让数字下标从一开始,省去到时候换算。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
// freopen("in.txt","r",stdin);
ios::sync_with_stdio(false);
int t;
char str[10000];
cin>>t;
while(t--)
{
memset(str,0,sizeof(str));
cin>>str+1;
int len=strlen(str+1);
int count=0;
for(int i=1;i<len;++i){
for(int j=2;j*j*i<len+1;++j)//这里一定要+1,或者改成<=,不然会出错。
if((str[i*j*j]=='x'&&str[i*j]=='r'&&str[i]=='y')||(str[i*j*j]=='y'&&str[i*j]=='r'&&str[i]=='x')){//分别考虑两种情况。
// cout<<j<<" "<<i*j<<" "<<j*i*i<<" aasd"<<endl;
count++;
}
}
cout<<count<<endl;
}
return 0;
}