zoj能AC

题目描述:

对给定的字符串(只包含‘z‘,‘o‘,‘j‘三种字符),判断他是否能AC。

是否AC的规则如下:

1. zoj能AC;

2. 若字符串形式为xzojx,则也能AC,其中x可以是N个‘o‘ 或者为空;

3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个‘o‘或者为空;

输入:

输入包含多组测试用例,每行有一个只包含‘z‘,‘o‘,‘j‘三种字符的字符串,字符串长度小于等于1000。
输出:

对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。
样例输入:
zoj
ozojo
ozoojoo
oozoojoooo
zooj
ozojo
oooozojo
zojoooo
样例输出:
Accepted
Accepted
Accepted
Accepted
Accepted
Accepted
Wrong Answer
Wrong Answer
来源:

2010年浙江大学计算机及软件工程研究生机试真题

分析:

AC的情况: a个o  + z + b个o +j + c个o

c=a*b,且b>=1

(o^a)z(o^b)j(o^c)  c=a*b,且b>=1

z,j都只有一个。且j在z之后出现,b>=1可以保证j在z之后出现

import java.util.*;
public class Main {

public static boolean check(String s)
    {
        int p=0,q=0,zp,jp,a,b,c;
        p=s.indexOf("z");
        q=s.lastIndexOf("z");

        if(p!=q)
        return false;
        if(p==-1)
            return false;
        zp=p;

        p=s.indexOf("j");
        q=s.lastIndexOf("j");
        if(p!=q)
        return false;
        if(p==-1)
            return false;
        jp=p;

        a=zp;
        b=jp-a-1;
        c=s.length()-jp-1;
        if((c==a*b) && (b>=1))
            return true;

        return false;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String t;
        boolean b;        

        Scanner scanneer = new  Scanner(System.in);
        while (scanneer.hasNext() )
        {
            t=scanneer.nextLine();
            b=check(t);

            if(b)
                System.out.println("Accepted");
            else
                System.out.println("Wrong Answer");
        }
    }
}
/**************************************************************
    Problem: 1006
    User: caiyunfree20
    Language: Java
    Result: Accepted
    Time:930 ms
    Memory:27016 kb
****************************************************************/

zoj能AC,布布扣,bubuko.com

时间: 2024-11-05 14:01:38

zoj能AC的相关文章

ZOJ 3430 AC自动机

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4114 Nobita did use an outstanding anti-virus software, however, for some strange reason, this software did not check email attachments. Now Nobita decide to detect viruses in emails by himse

ZOJ 3494 (AC自动机+高精度数位DP)

题目链接:  http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3494 题目大意:给定一些被禁止的BCD码.问指定范围内不含有任何这些禁止的BCD码的数的个数. 解题思路: AC自动机部分: 首先insert这些被禁止的BCD码. 然后打一下自动机前后状态的转移的表,用BCD[i][j]表示自动机状态i时,下一个数字是j的自动机的下一个状态. 一开始我考虑最先dfs的位在自动机的位置,后来发现SB了.AC自动机有一个roo

Searching the String ZOJ - 3228 AC自动机查询升级版

题意:先给你一个不超过1000000长度的大串s:接下来输入一个n代表接下来输入的小串个数,小串长度不超过6. 小串分两种类型0和1类型. 0类型表示小串在大串中的最大匹配个数就是常规的AC自动机的做法. 1类型表示小串在大串中不能重合的最大匹配数. 依次输出结果.(所有的串只包含小写字母) 按样例输出,注意每组测试数据后有一个换行. 题意我不想写了抄的,抄这里的 (不好意思啦) 0 类型的就是最开始的模板题 1 类型的处理方式就是,在建立字典树的时候弄一个dep数组,记录每一个节点的深度 然后

九度OJ 1006 ZOJ

#include <iostream> #include <string> using namespace std; int getO(string str,int &start,char ch) { int count=0; for(;start<str.length();start++) { if(str[start] == 'o') { count++; } else if(str[start]==ch) { start++; return count; } e

ZOJ问题--hdu3788

ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3292    Accepted Submission(s): 984 Problem Description 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下:1. zoj能AC:2. 若字符串形式为xzojx,则也能AC,其中x可

HDU 3788 zoj问题

ZOJ问题 Problem Description 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下:1. zoj能AC:2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空:3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空: Input 输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000: Output 对于给定的字符串,如果能AC

ZOJ问题(杭电3788)

ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2859    Accepted Submission(s): 862 Problem Description 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其

九度OJ 1006 ZOJ问题 (这题測试数据有问题)

题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15725 解决:2647 题目描写叙述: 对给定的字符串(仅仅包括'z','o','j'三种字符),推断他能否AC. 是否AC的规则例如以下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC.当中x能够是N个'o' 或者为空: 3. 若azbjc 能AC,则azbojac也能AC.当中a,b,c为N个'o'或者为空: 输入: 输入包括多组測试用例,每行有一个仅仅包括'z','o','j'三种字

九度oj 1006 ZOJ问题 2010年浙江大学计算机及软件工程研究生机试真题

题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:16244 解决:2742 题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC.是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空: 3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空: 输入: 输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,