台州学院第四届大学生程序设计竞赛解题报告

第四届校赛 L题 解题报告-by wuhongliang

求任意一个矩阵的所有元素和,其实涉及到了相应的四个矩阵,如要计算A(x1,y1)--A(x2,y2)的矩阵元素和,只需矩阵A(0,0)--A(x2,y2)   减去  矩阵A(0,0)--A(x1-1,y2)   减去  矩阵A(0,0)--A(x2,y1-1)   加上  矩阵A(0,0)--A(x1-1,y1-1)  可画一下图,比较直观,最后一个矩阵为第二个和第三个多减去的部分,所以最后要加上;原问题就转换成如何计算从A(0,0)开始的四个矩阵元素和,此时我们依然可以有类似于上面的方式得出结果,代码为

 for(i=1;i<=r;i++)
{
  for(j=1;j<=c;j++)
              {
                   scanf("%d",&num[i][j]);
                                num[i][j]+=(num[i-1][j]+num[i][j-1]-num[i-1][j-1]);//输入的时候马上更新数据,这里的num[i][j]保存的即为矩阵A(0,0)---A(i,j)的元素和
  }
}

根据最上面的公式,结果为
                   sum=num[x2][y2]-num[x1-1][y2]-num[x2][y1-1]+num[x1-1][y1-1];
     printf("%d\n",sum);


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.