码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 5944 Fxx and string

时间:2016-12-02 01:52:58      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:images   ati   ext   pad   start   blog   rect   png   over   

\:nn,下标从1开始,第\:i\:i位的字母为\:s_is?i??,现在Fxx想知道有多少三元组\:(i,j,k)\:(i,j,k)满足下列条件

1、i,j,k\:i,j,k三个数成等比数列

2、s_i=s?i??=‘yy‘,s_j=,s?j??=‘rr‘,s_k=,s?k??=‘xx‘

3.i/ji/j和k/jk/j中必须有整数\:nn,下标从1开始,第\:i\:i位的字母为\:s_is?i??,现在Fxx想知道有多少三元组\:(i,j,k)\:(i,j,k)满足下列条件

1、i,j,k\:i,j,k三个数成等比数列

2、s_i=s?i??=‘yy‘,s_j=,s?j??=‘rr‘,s_k=,s?k??=‘xx‘

3.i/ji/j和k/jk/j中必须有整数\:nn,下标从1开始,第\:i\:i位的字母为\:s_is?i??,现在Fxx想知道有多少三元组\:(i,j,k)\:(i,j,k)满足下列条件

1、i,j,k\:i,j,k三个数成等比数列

2、s_i=s?i??=‘yy‘,s_j=,s?j??=‘rr‘,s_k=,s?k??=‘xx‘

3.i/ji/j和k/jk/j中必须有整数技术分享

题意确实有点不清晰,第3点应该是i必须被j整除且j必须被k整除,之后就是循环i,枚举q,暴力解题
技术分享
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
char a[10010];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%s",a+1);
        int ans=0;
        int n=strlen(a+1);
        for(int i=1; i<=n; i++)
        {
            if(a[i]==y)
                for(int j=2; i*j*j<=n; j++)
                {
                    if(a[i*j]==r&&a[i*j*j]==x) ans++;
                }
        }
        for(int i=n; i>=1; i--)
        {
            if(a[i]==y)
                for(int j=2; i/j/j>=1; j++)
                {
                    if((i%j)||(i%(j*j))) continue;
                    if(a[i/j]==r&&a[i/j/j]==x) ans++;
                }
        }
        printf("%d\n",ans);
    }
    return 0;
}
View Code

 



hdu 5944 Fxx and string

标签:images   ati   ext   pad   start   blog   rect   png   over   

原文地址:http://www.cnblogs.com/zsyacm666666/p/6123594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!