日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矩阵归零消减

發布時間:2024/10/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩阵归零消减 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個n*n的矩陣(3 <= n <= 100,元素的值都是非負整數)。通過(n-1)次實施下述過程,可把這個矩陣轉換成一個1*1的矩陣。每次的過程如下:

首先對矩陣進行行歸零:即對每一行上的所有元素,都在其原來值的基礎上減去該行上的最小值,保證相減后的值仍然是非負整數,且這一行上至少有一個元素的值為0。

接著對矩陣進行列歸零:即對每一列上的所有元素,都在其原來值的基礎上減去該列上的最小值,保證相減后的值仍然是非負整數,且這一列上至少有一個元素的值為0。

然后對矩陣進行消減:即把n*n矩陣的第二行和第二列刪除,使之轉換為一個(n-1)*(n-1)的矩陣。

下一次過程,對生成的(n-1)*(n-1)矩陣實施上述過程。顯然,經過(n-1)次上述過程, n*n的矩陣會被轉換為一個1*1的矩陣。

請求出每次消減前位于第二行第二列的元素的值。



輸入第一行是一個整數n。
接下來n行,每行有n個正整數,描述了整個矩陣。相鄰兩個整數間用單個空格分隔。輸出輸出為n行,每行上的整數為對應矩陣歸零消減過程中,每次消減前位于第二行第二列的元素的值。樣例輸入

3 1 2 3 2 3 4 3 4 5

樣例輸出

3 0 0

#include <iostream> #include <algorithm> using namespace std; int main() {int a[101][101];int n, m;cin >> n;m = n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin >> a[i][j];for(int i=1;i<=n;i++){cout<<a[2][2]<<endl;for(int i=1;i<=m;i++){int x = 0x7FFFFFFF;for(int j=1;j<=m;j++)x=min(x,a[i][j]);for(int j=1;j<=m;j++)a[i][j]-=x;}for(int i=1;i<=m;i++){int x = 0x7FFFFFFF;for(int j=1;j<=m;j++)x=min(x,a[j][i]);for(int j=1;j<=m;j++)a[j][i]-=x;}for(int i=2;i<=m-1;i++)for(int j=1;j<=m;j++)a[i][j]=a[i+1][j];for(int j=2;j<=m;j++)for(int i=1;i<=m-1;i++)a[i][j]=a[i][j+1];m--;} }

  

轉載于:https://www.cnblogs.com/fangzheng-nie/p/9979071.html

總結

以上是生活随笔為你收集整理的矩阵归零消减的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。