矩阵归零消减序列和
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个n*n的矩阵( <= n <= ,元素的值都是非负整数)。通过n-1次实施下述过程,可把这个矩阵转换成一个1*1的矩阵。每次的过程如下:
首先对矩阵进行行归零:即对每一行上的所有元素,都在其原来值的基础上减去该行上的最小值,保证相减后的值仍然是非负整数,且这一行上至少有一个元素的值为0。
接着对矩阵进行列归零:即对每一列上的所有元素,都在其原来值的基础上减去该列上的最小值,保证相减后的值仍然是非负整数,且这一列上至少有一个元素的值为0。
然后对矩阵进行消减:即把n*n矩阵的第二行和第二列删除(如果二维数组为a[][],则删除的是a[][]所在的行和列),使之转换为一个(n-)*(n-)的矩阵。
下一次过程,对生成的(n-)*(n-)矩阵实施上述过程。显然,经过n-1次上述过程, n*n的矩阵会被转换为一个1*1的矩阵。
请求出每次消减前a[][]值之和。
输入
第一行是一个整数n。
其后是n个n*n的矩阵。
每个矩阵占n行,每行有n个正整数,每个整数间用空格分隔。
输出
输出为n行,每行上的整数为对应矩阵归零消减过程中,每次消减前a[][]值之和。
样例输入 样例输出 1
提示:
请比较两种做法! 
第一种做法得到的结果不正确,第二种才是正确的。

其实就是说:归零时先按行归零,再按列归零。

对每一行或每一列归零时,扫描行或列,假如里面含0,那这一行或列的归零工作就免了,直接处理下一行或列。

 #include<stdio.h>
int main()
{
int a[][],i,j,k,n;
int rowMin,colMin;
int x;
int sum;
freopen("5.in","r",stdin);
freopen("result.out","w",stdout);
scanf("%d",&n);
for(k=;k<n;k++)
{
//输入二维数组
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
sum=;
//归零和消减,整个操作有n-1次,每次进行时数组的阶是x
for(x=n;x>;x--)
{
//行的归零
for(i=;i<x;i++)
{
rowMin=a[i][];
for(j=;j<x&&rowMin>;j++)
{
if(a[i][j]<rowMin)
{
rowMin=a[i][j];
}
}
if(rowMin!=)
{
for(j=;j<x;j++)
{
a[i][j]=a[i][j]-rowMin;
}
} }
//列的归零
for(j=;j<x;j++)
{
colMin=a[][j];
for(i=;i<x&&colMin>;i++)
{
if(a[i][j]<colMin)
{
colMin=a[i][j];
}
}
if(colMin!=)
{
for(i=;i<x;i++)
{
a[i][j]=a[i][j]-colMin;
}
}
}
sum=sum+a[][];
//下面是消减
i=;
for(j=;j<x;j++)
a[i][j-]=a[i][j];
j=;
for(i=;i<x;i++)
a[i-][j]=a[i][j];
for(i=;i<x;i++)
{
for(j=;j<x;j++)
{
a[i-][j-]=a[i][j];
}
}
}
printf("%d\n",sum);
}
return ;
}

OpenJudge计算概论-矩阵归零消减序列和的更多相关文章

  1. OpenJudge计算概论-矩阵交换行

    /*======================================================================== 矩阵交换行 总时间限制: 1000ms 内存限制: ...

  2. OpenJudge计算概论-取石子游戏

    OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...

  3. Openjudge计算概论-计算矩阵边缘元素之和

    /*======================================================================== 计算矩阵边缘元素之和 总时间限制: 1000ms ...

  4. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

  5. OpenJudge计算概论-计算书费

    /*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...

  6. OpenJudge计算概论-最高的分数

    /*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...

  7. Openjudge计算概论-求序列中的众数

    /*===================================== 求序列中的众数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个长度为N的整数序列 (不多于128 ...

  8. OpenJudge计算概论-找最大数序列

    /*===================================== 找最大数序列 总时间限制: 1000ms 内存限制: 65536kB 描述 输入n行(n 不大于 30),每行不超过10 ...

  9. Openjudge计算概论-奇数单增序列

    /*===================================== 奇数单增序列 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个长度为N(不大于500)的正整数序列 ...

随机推荐

  1. N的阶乘的长度 V2(斯特林近似) 求 某个大数的阶乘的位数 .

    求某个大数的阶乘的位数 . 得到的值  需要 +1 得到真正的位数 斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义.在数学分析中,大多都是利用Г函数.级数和含参变量的积分等 ...

  2. linux常用命令:4文件压缩和解压命令

    文件压缩和解压命令 压缩命令:gzip.tar[-czf].zip.bzip2 解压缩命令:gunzip.tar[-xzf].unzip.bunzip2 1. 命令名称:gzip 命令英文原意:GNU ...

  3. 使用java理解程序逻辑 第三章 选择结构一

    if 选择结构: if(条件){       代码块  //条件成立后要执行的代码.可以是一条语句,也可以是一组语句 } 可以处理单一或组合条件的情况. if-else 选择结构: if(条件){   ...

  4. Response响应请求操作

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...

  5. Oracle SQL语句追踪

    Oracle SQL语句追踪 1   SQL语句追踪 追踪SQL语句的执行过程需要在Oracle服务器端进行,Oracle服务器端会检测并记录访问进程所执行的所有SQL语句.下面使用的命令都是在命令行 ...

  6. less 快捷操作

    查找操作: /pattern    向前查找包含pattern的行 ?pattern 向后查找包含pattern的行 n 查找下一个pattern 的行 N 查找上一个pattern的行 ESC-u ...

  7. win7建立无线wifi热点的几个常见的问题

    命令行开启WiFi方法: 开启WiFi.bat netsh wlan set hostednetwork mode=allow netsh wlan set hostednetwork ssid=ss ...

  8. Hive cli源码阅读和梳理

    对Cli的重新认识*). hive cli有两种模式, 本地模式: 采用持有的driver对象来处理, 远程模式: 通过连接HiveServer来实现, 由此可见之前的架构图中的描述还是模糊且带有误导 ...

  9. yii2后台上传图片,前台也能显示 的方法

    备注:::很low    高端人士 勿入  支持 吐槽  有你们的吐槽才有我的进步 还不会yii上传的  go   out    (哈哈,开玩笑)

  10. jquery中prop()方法和attr()方法的区别

    最近在用jquery的时候遇到一个问题,那就是attr()方法,发现这个方法有时候使用会有一些说不出原因的问题.翻翻自己之前笔记发现,还有个函数prop(). 这两个函数都可以用来获取属性. jque ...