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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

poj1050最大子矩阵和

發布時間:2023/11/29 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj1050最大子矩阵和 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇是看了別人的報告寫的,就當是屢屢思路好了.

題目大意。給定一個n階矩陣(方陣),每一個元素中存在一個數字.任務就是求出一個最大的子矩陣使得矩陣元素之間的和是最大的.

n=100;

1.矩陣A[m][n]的和能夠直接 sum+=A[i][j] ( i = 0 to n-1 j=0 to n-1); 還能夠求出第i列的和p[i],再將所在列加起來,(當然行是同理的).

2.因此所選的矩陣的行k能夠枚舉(0<=k<=n-1),此時能夠現將列加起來,然后找到這些列中連續最大和就可以.這就是選出的矩陣最大和.

3.在全部矩陣中選出最大和的一個。

/*Source Code Problem: 1050 User: Memory: 388K Time: 32MS Language: GCC Result: AcceptedSource Code*/#include <stdio.h>int max(int a,int b){return a>b?

a:b; } int main(){ int i,j,k,n; int ans=-0xfffffff; int A[101][101]={0}; scanf("%d",&n); for(i=0;i<n;i++){ for(j=0;j<n;j++){ scanf("%d",&A[i][j]); } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ int add[101]={0},d[101]={0}; for(k=0;k<n;k++){ int l; for(l=i;l<=j;l++){ add[k]+=A[l][k]; } } d[0]=add[0]; ans=max(ans,d[0]); for(k=0;k<n;k++){ d[k]=d[k-1]>0?d[k-1]+add[k]:add[k]; ans=max(ans,d[k]); } } } printf("%d\n",ans); return 0; }



轉載于:https://www.cnblogs.com/yxwkf/p/5410217.html

總結

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

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