【杭电】[3788]ZOJ问题

这里写图片描述
这里写图片描述

找规律的题目
先分析能AC的条件
1.ZOJ能AC 这个很简单
2.xzojx能AC 也就是z前的与j后个数相同 之间有1个
3.若azbjc 能AC,则azbojac也能AC
第三个有一个若字
也就是说azbojac能AC是有前提条件的
也就是满足这种形式的可以一步步推出来

分析条件
满足3AC则必有初始时 a=c b=1
然后每一次可以递归得出
三个o的个数
a 2 a+c
a 3 2a+c
……
因为前提条件a=c
所以
三个个数需要满足
a b b*a
也就是个数Z前与ZJ之间的乘积要与J后的相等
所以可以排除其它完全不可能的
(zj中间一个o没有 没有z或j)
写出AC条件

#include<stdio.h>
#include<string.h>
int main() {
    char s[1200];
    while(gets(s)!=NULL) {
        int l=strlen(s);
        int a=0,b=0,c=0,z=0,j=0;
        bool AC=false;
        for(int i=0; i<l; i++) {
            if(s[i]=='z') {
                if(z==0)
                    z++;
                else {
                    break;
                }
            } else if(s[i]=='j') {
                if(j==0)
                    j++;
                else {
                    break;
                }
            } else {
                if(z==0)
                    a++;
                else if(j==0)
                    b++;
                else
                    c++;
            }
        }
        if(b>0&&a*b==c)
            AC=true;
        if(!z||!j)
            AC=false;
        if(AC)
            printf("Accepted
");
        else
            printf("Wrong Answer
");
    }
    return 0;
}

题目地址:【杭电】[3788]ZOJ问题

原文地址:https://www.cnblogs.com/BoilTask/p/12569677.html