| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2401 人关注过本帖
标题:球解 这个数组问题交到oj上是时间超限。。不理解啊
只看楼主 加入收藏
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
结帖率:58.82%
收藏
已结贴  问题点数:20 回复次数:8 
球解 这个数组问题交到oj上是时间超限。。不理解啊
Description
整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列。

两整数序列A、B的和定义为一个新的整数序列C,序列C的长度是A、B两者中较长的一个,序列C的每个位置上的整数都是A、B对应位置之和。若序列A、B不等长,不妨假设A比B整数多,那么序列C中多出B的那部分整数视作A的对应位置上的整数与0相加。

你的任务是计算符合某些要求的整数序列的和,这些序列中的整数都是小于1000的非负整数。

Input
输入的第一行为一个整数M(M>0),后面有M行输入。每行输入为不超过1000个整数的整数序列,每个整数序列的输入均以0结束。

Output
对输入的整数序列两两相加:第1行和第2行相加、第3行和第4行相加……按顺序输出结果:每行输出一个整数序列,每两个整数之间用一个空格分隔。若序列数目不为偶数,则视作补一个长度为0的整数序列相加。

值得注意的是一个长度为0的整数序列也应该有输出,即使没有整数输出,也应该占有一行,因为“每行输出一个整数序列”。

Sample Input
3
1 2 3 0
10 15 20 30 50 0
100 200 300 400 0

Sample Output
11 17 23 30 50
100 200 300 400

HINT

这里最少要用到一个数组来存数整数序列或整数序列的和。一个省事的做法是把数组定义的稍微大一点,因为有时你的程序可能会边界处理的不是太好。

下面是我写的
-----------------------------------
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int N1,N2,N3,i,M,m=0;
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    scanf("%d",&M);
    if (M==0)
    {
        return 0;
    }
    for (;;)
    {
        int a[1000]= {0},b[1000]= {0};
        for (N1=0;; N1++)
        {
            scanf("%d",&a[N1]);
            if (a[N1]==0)
            {
                break;
            }
        }
        m++;
        if (m==M)
        {
            if (a[0]==0)
            {
                printf("\n");
                return 0;
            }
            else
            {
                printf("%d",a[0]);
                for (i=1; i<N1; i++)
                {
                    printf(" %d",a[i]);
                }
                return 0;
            }
        }
        for (N2=0;; N2++)
        {
            scanf("%d",&b[N2]);
            if (b[N2]==0)
            {
                break;
            }
        }
        m++;
        N3=N1>=N2?N1:N2;
        if (a[0]!=0 || b[0]!=0)
        {
            printf("%d",a[0]+b[0]);
        }
        for (i=1; i<N3; i++)
        {
            printf(" %d",a[i]+b[i]);
        }
        printf("\n");
        if (m==M)
        {
            return 0;
        }
    }
    return 0;
}
---------------------------
见笑了  只是不明白oj用的什么例子让我写的一直超时
2012-11-22 19:17
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
  
int main()
{
    int N1,N2,N3,i,M,m=0;
    scanf("%d",&M);
    if (M==0)
    {
        return 0;
    }
    for (;;)
    {
        int a[1000]= {0},b[1000]= {0};
        for (N1=0;; N1++)
        {
            scanf("%d",&a[N1]);
            if (a[N1]==0)
            {
                break;
            }
        }
        m++;
        if (m==M)
        {
            if (a[0]==0)
            {
                printf("\n");
                return 0;
            }
            else
            {
                printf("%d",a[0]);
                for (i=1; i<N1; i++)
                {
                    printf(" %d",a[i]);
                }
                return 0;
            }
        }
        for (N2=0;; N2++)
        {
            scanf("%d",&b[N2]);
            if (b[N2]==0)
            {
                break;
            }
        }
        m++;
        N3=N1>=N2?N1:N2;
        if (a[0]!=0 || b[0]!=0)
        {
            printf("%d",a[0]+b[0]);
        }
        for (i=1; i<N3; i++)
        {
            printf(" %d",a[i]+b[i]);
        }
        printf("\n");
        if (m==M)
        {
            return 0;
        }
    }
    return 0;
}
  
/**************************************************************
    Problem: 1051
    User: 201201050229
    Language: C
    Result: 输出超限
****************************************************************/

2012-11-22 19:26
冰冻零点
Rank: 3Rank: 3
来 自:西安电子科技大学
等 级:论坛游侠
帖 子:81
专家分:136
注 册:2012-9-18
收藏
得分:10 
路过看看

好好学习,天天向上
2012-11-22 19:49
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 3楼 冰冻零点
不要光看啊。。。。
2012-11-22 20:36
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
oj对算法要求高,不仅靠实现

★★★★★为人民服务★★★★★
2012-11-22 20:39
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 5楼 cnfarer
我大一。。没看懂你说的。。。就是我在codeblocks里看的结果是对的,为么交上去就不对了?还不是WrongAnswer
2012-11-22 21:23
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
也就是说,你代码执行的效率不高也不行,即使结果可能也是正确的.

★★★★★为人民服务★★★★★
2012-11-22 21:29
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 7楼 cnfarer
那样的话应该是时间超限  
2012-11-22 21:46
林别
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-13
收藏
得分:0 
时间超限一般怎样修改才行
2014-12-13 13:38
快速回复:球解 这个数组问题交到oj上是时间超限。。不理解啊
数据加载中...
 
   



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

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