| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1799 人关注过本帖
标题:杭电一道ACM题目,测试数据通过,但是总是WA,求找原因!
只看楼主 加入收藏
jiaxinhuayua
Rank: 1
来 自:南京
等 级:新手上路
帖 子:4
专家分:3
注 册:2012-2-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:21 
杭电一道ACM题目,测试数据通过,但是总是WA,求找原因!
题源:http://acm.hdu.
搜索更多相关主题的帖子: 测试 原因 
2012-02-08 23:45
jiaxinhuayua
Rank: 1
来 自:南京
等 级:新手上路
帖 子:4
专家分:3
注 册:2012-2-8
收藏
得分:0 
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
    char ch[10000],a;
    int i=0,k,n,m;
    memset(ch,'0',sizeof(ch));
   
   
    while(scanf("%c",&a)!=-1)
    {
          while(a!='\n')
          {
             ch[i++]=a;
             if(a=='z') k=i-1;
             else if(a=='j') n=i-1;
             scanf("%c",&a);
             }
             m=i-1;
             if((n-k-1==1)&&(k==m-n)) printf("Accepted\n");
            
             else if((n-k-1>=2)&&(m-n>=k)) printf("Accepted\n");
            
             else printf("Wrong Answer\n");
              
             i=0;
            
            
    }
     return 0;
}
谢谢大家先!!
2012-02-08 23:46
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:7 
今天问ACM的人还真不少。
词法分析。我习惯自己先做一遍再回答,太晚了, 明天试试

重剑无锋,大巧不工
2012-02-09 00:38
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
早安各位!
程序代码:
#include<stdio.h>

int isAC(char * str)
{
    int i, zi, zn, ji, jn, a, b, c;
    for(zn = jn = i = 0; str[i] != '\0'; i++)
        if(str[i] == 'z'){ zi = i; zn++;}
        else if(str[i] == 'j'){ ji = i; jn++;}
    if(zn != 1 || jn != 1 || zi > ji) return 0;
    for(a = 0; *str == 'o'; str++, a++);
    for(str++, b = 0; *str == 'o'; str++, b++);
    for(str++, c = 0; *str == 'o'; str++, c++);
    if(b && a * b == c) return 1;
    return 0;
}

int main()
{
    char str[1001];
    while(scanf("%s", str) != EOF)
        printf("%s\n", isAC(str) ? "Accepted" : "Wrong Answer");
    return 0;
}

重剑无锋,大巧不工
2012-02-09 07:43
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
收藏
得分:7 
以下是引用beyondyf在2012-2-9 07:43:54的发言:

早安各位!
#include
 
int isAC(char * str)
{
    int i, zi, zn, ji, jn, a, b, c;
    for(zn = jn = i = 0; str != '\0'; i++)
        if(str == 'z'){ zi = i; zn++;}
        else if(str == 'j'){ ji = i; jn++;}
    if(zn != 1 || jn != 1 || zi > ji) return 0;
    for(a = 0; *str == 'o'; str++, a++);
    for(str++, b = 0; *str == 'o'; str++, b++);
    for(str++, c = 0; *str == 'o'; str++, c++);
    if(b && a * b == c) return 1;
    return 0;
}
 
int main()
{
    char str[1001];
    while(scanf("%s", str) != EOF)
        printf("%s\n", isAC(str) ? "Accepted" : "Wrong Answer");
    return 0;
}
3楼牛人
研究了一上午加上3楼提供的程序才明白题目。
我的理解:
要求检验一组字符azbjc,其中在z,j字符固定不变,a,b,c为自然数。
满足一下条件的AC,否则WA。
1、a=0时,b=1,c=0;
2、a=1时,b=c;
3、a>1时,b=1,c=a.

不知是否有误?
2012-02-10 10:27
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 5楼 ljl123970
补充说明

我代码中的a b c分别表示z之前o的数量、z与j之间o的数量,以及j之后o的数量
关于AC还有几个隐含条件,全部的条件如下:

1.串中z与j的数量必须为1
2.z的位置必须在j之前
3.b的数量至少为1
4.在b为1的情况下a必须等于c
5.在b大于1所情况下a必须等于b * c

重剑无锋,大巧不工
2012-02-10 11:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:7 
回复 6楼 beyondyf
杨大哥  我怎么没读懂这个题呢   大哥帮我拿ozoojoo这个数据 分析一下它为啥符合第三个条件 谢啦

                                         
===========深入<----------------->浅出============
2012-02-10 17:06
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
收藏
得分:0 
回复 6楼 beyondyf

漂亮!以b为第一条件,简洁明了,代码好看!服!!!!

——条件中第五条的a,c反了 代码中对的


向版主学习
2012-02-10 17:08
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 9楼 ljl123970
你读懂了  拿ozoojoo这个数据 帮我解释下可以吗

                                         
===========深入<----------------->浅出============
2012-02-10 17:10
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
收藏
得分:0 
回复 8楼 laoyang103
因为ozoojoo可以解读成:a=1,b=1,c=1;而此时azbjc就是ozojo满足第二个条件 我说的对吧
2012-02-10 17:11
快速回复:杭电一道ACM题目,测试数据通过,但是总是WA,求找原因!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019062 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved