标题:又是wrong answer!!!!受不了
只看楼主
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
得分:0 
回复 10楼 beyondyf
http://acm.zjgsu.
不过这是我们测试的题目,你不一定可以做
2011-12-22 22:25
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
可以做。试过了,WA。我深度怀疑该题的测试数据有问题。

重剑无锋,大巧不工
2011-12-22 23:43
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
得分:0 
可是为什么同学的程序就能AC
2011-12-23 12:27
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
我也有兴趣看看你同学的AC代码。

重剑无锋,大巧不工
2011-12-23 12:54
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 10楼 beyondyf
虽然是n^2的算法 不过AC了  杨大哥试试这组数据
2
a.exe
a.exe.exe
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void *a, const void *b)
{
    return strcmp(*(char **)a, *(char **)b);
}
int main()
{
    char str[1005][32];
    char *list[1005];
    int n, i, len, sum, j;
    char temp;
    while(scanf("%d", &n), n)
    {
        sum = 0;
        for(i = 0; i < n; i++)
            scanf("%s", str[i]);
        for(i = 0; i < n; i++)
        {
            len = strlen(str[i])-4;
            if(len>0 && !strcmp(str[i]+len,".exe"))
            {
                temp = str[i][len];
                str[i][len] = 0;
                for(j = 0;j<n;j++)
                {
                    if(j == i)continue;    
                    if(!strcmp(str[i],str[j]))
                    {
                        list[sum++] = str[j];
                        break;
                    }
                }
                str[i][len] = temp;
            }
        }
        qsort(list, sum, sizeof(char *), cmp);
        for(i = 0; i < sum; i++)
            printf("%s.exe\n", list[i]);
    }
    return 0;
}


[ 本帖最后由 laoyang103 于 2011-12-23 18:53 编辑 ]

                                         
===========深入<----------------->浅出============
2011-12-23 18:52
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
呵呵,老杨好久不见了,还在忙你的网站?

嗯,老杨的提醒让我豁然开朗,之前确实没有考虑到这一点,呵呵陷入了思维定式。

这是加入这一考虑的代码,AC,很抱歉怀疑数据有问题,以后不能这么自信了,呵呵。它的时间复杂度应该是n * log(n)
程序代码:
#include<stdio.h>
#include<string.h>
int cmp(const void *a, const void *b)
{
    return strcmp(*(char **)a, *(char **)b);
}
int main()
{
    char a[2000][24], *p[2000];
    int an, n, i, len;
    while(scanf("%d", &n), n)
    {
        for(an = i = 0; i < n; i++, an++)
        {
            scanf("%s", a[an]);
            len = strlen(a[an]) - 4;
            p[an] = a[an];
            if(len >= 0 && !strcmp(a[an] + len, ".exe"))
            {
                strcpy(a[an + 1], a[an]);
                a[an++][len] = '\0';
                p[an] = a[an];
            }
        }
        qsort(p, an, sizeof(char *), cmp);
        for(i = 1; i < an; i++)
            if(!strcmp(p[i], p[i - 1])) printf("%s.exe\n", p[i]);
    }
    return 0;
}

重剑无锋,大巧不工
2011-12-23 19:39
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
回复 16楼 beyondyf
花钱找人做的  肯定够糊弄那SB老师的啦

                                         
===========深入<----------------->浅出============
2011-12-23 20:38
傻瓜菜
Rank: 2
来 自:earth
等 级:论坛游民
帖 子:73
专家分:66
注 册:2011-10-4
得分:0 
回复 10楼 beyondyf
http://acm.zjgsu.
2011-12-23 23:02
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
得分:0 
回复 16楼 beyondyf
不是吧!!那么我的代码的问题是???
2011-12-24 00:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-358378-1-1.html




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

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