回 帖 发 新 帖 刷新版面

主题:第三十二次比赛第一题结果

本次比赛只有两人参加goal00000001和yxs0001,可能是题的原因吧
但还是希望大家多多参与以后的比赛,在比赛中成长我想才是比赛的真正目的吧

下面我公布第三十二次编程比赛第一题的结果:
goal00000001:      1秒
yxs0001:           1秒
在随机10组数据中,大家的时间都差不多,但为了找出冠军
我追加到了30组,goal00000001为2秒,yexs0001为3秒

而且又一次被goal00000001的认真程度感动  学习之~~
yex0001第二组代码比第一组快了进3倍,不错
听说yex0001刚高考完,正是蜜月时期啊

恩~~!!我宣布第三十二次编程比赛第一题花落goal000001家  哈哈 大家恭喜
顶者有分!!
请goal000000001负责32次比赛第一题的相关事宜  谢谢 
 

回复列表 (共11个回复)

沙发

数据量再大点的话两者差距可能更大,呵呵!
能拿冠军当然高兴啊,但这次参赛的人这么少,总感觉是捡来的,为什么高手们不出马呢?

板凳

`````~~~~~~~~~~~~~~~~

3 楼

谁知道呀
我还是很纳闷
不知道是不是题目的原因
下次看你的了  不要太变态就ok 了

4 楼

哈哈

5 楼

-46    5    -104    -121    55    
98    29    99    -101    -122    
-1    22    -75    -34    70    
-102    102    86    125    89    
63    -52    90    66    67    

我的结果:573 (3,1)~(4,4)
goal00001111的结果:402

//再改进程序
//也可以不用三维数组有  少量重复计算,对时间影响不大
const int N = 100;
typedef int mat[N][N];
int caclmat_new(int a[][N],int n)
{
    int i,j,k,l;
    int max=-200,sum,temp;
    mat *tmp = new mat [N];//tmp[i][j][k]保存1×(k+1)矩阵的和 该矩阵的(0,0) 元素为a[i][j]
    
    for(i = 0;i<n;i++){
        temp = n - i;
        for(j=0;j<n;j++){
            for(k=0;k<temp;k++){
                sum = 0;
                for(l=0;l<=k;l++)
                    sum += a[i+l][j];
                tmp[i][j][k] = sum;
            }
        }
    }
    for(i=0;i<n;i++){//子矩阵在矩阵a中行号
        temp = n - i;
        for(j=0;j<n;j++)//子矩阵在矩阵a中列号
            for(k=0;k<temp;k++){//子矩阵行数
                if(j && tmp[i][j-1][k]>0)//子矩阵左边列和>=0不必计算
                    continue;
                sum = 0;
                for(l=j;l<n;l++){
                    sum += tmp[i][l][k];
                    if(sum>max)
                        max = sum;
                    if(sum<0)
                        break;
                }
            }
    }
    delete []tmp;

    return max;
}

6 楼

昨天今天断网了
没看到贴
今天才来
不好意思  我再研究研究 呵呵
多谢yxs0001兄指出

7 楼

我的结果是573啊!

8 楼

goal00001111的答案没错!
yxs0001上面贴的代码在30组随机数据的情况下和goal00001111的同样时间
主要是用了辅助空间来存中间结果,我也是这样做的 呵呵
这个typedef int mat[N][N];我到是学到了 谢谢yxs0001
大家期待goal00001111带来更好的题目

9 楼

to goal00001111
我是在网吧上网 抄写程序错误难免 呵呵 不好意思

10 楼

算法的时间复杂度是多少?看不清楚

我来回复

您尚未登录,请登录后再回复。点此登录或注册