zoukankan      html  css  js  c++  java
  • HDU 5455 Fang Fang 水题,但题意描述有问题

    题目大意:f[1]=f,f[2]=ff,f[3]=ffc,以后f[n]每增加1,字符串增加一个c。给出一个字符串,求最少有多少个f[]组成。(字符串首尾相连,比如:ffcf可看做cfff)

    题目思路:判断多少个c,但是每个c之间必须有两个f,首尾的c也应判断首尾相连后两者之间的距离。坑点在与

    1.给出的字符串中可能包含其它字符

    2.严格按照gets()读入

    3.若不含c,求有多少个f[2],若有多余补上一个f[1]

    3.1.出题人神经病

    #include<cstdio>
    #include<stdio.h>
    #include<cstdlib>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<vector>
    #include<queue>
    #define INF 0x3f3f3f3f
    #define MAX 1000100
    #define mod 1000000007
    
    using namespace std;
    
    char str[MAX];
    int index[MAX];//存储每个c的位置
    
    int check()
    {
        int len,i,j,ans=0,sum=0,ok=0,flag=0,cnt=1;
        memset(index,0,sizeof(index));
        len=strlen(str);
        if(len==0)
            return -1;
        for(i=0;i<len;i++)
        {
            if(str[i]=='c')
            {
                index[cnt++]=i;
                sum++;
            }
            else if(str[i]!='c' && str[i]!='f')//存在其他字符直接返回0
                return 0;
        }
        cnt--;
    
        if(sum  > (len-1)/2)
            return 0;
        for(i=2;i<=cnt;i++)
        {
            if(index[i] - index[i-1] <= 2)//每个c至少相隔2个单位
                return 0;
        }
        if(cnt > 1)//判断收尾的c之间的距离
        {
            int k=len-(index[cnt]-index[1]);//
            if(k <= 2)
                return 0;
        }
    
        if(sum==0)//如果没有c,求str中有多少个f【2】,不够上一个补f【1】
        {
            return (len+1)/2;
        }
    
        return sum;
    }
    int main()
    {
        int T,ans,cnt=1;
        scanf("%d",&T);
        getchar();
        while(T--)
        {
            gets(str);
            ans=check();
            if(ans==0)
                ans=-1;
            else if(ans==-1)
                ans=0;
            printf("Case #%d: %d
    ",cnt++,ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    unity 用LineRender画四边形并测面积
    unity读取Texture文件并转为Sprit
    unity shader入门(四):高光
    unity shader入门(三)逐像素光照,Blinn-Phong模型
    unity shader入门(二)语义,结构体,逐顶点光照
    unity shader入门(一):基本结构话痨版
    好多坑,好多好多坑(1)
    点击按钮收缩功能
    unity 实现技能释放
    ugui用户定义操作按键
  • 原文地址:https://www.cnblogs.com/alan-W/p/5791582.html
Copyright © 2011-2022 走看看