文章

14

粉丝

0

获赞

9

访问

1.0k

头像
最大子矩阵 题解:
P1245 北京大学/中国科学院2017机试题
发布于2025年3月4日 20:40
阅读数 71

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int N;
    while(cin>>N)
    {
        int input[N+1][N+1];
        memset(input,0,sizeof(input));
        for(int i=1;i<=N;i++)
            for(int j=1;j<=N;j++)
                cin >> input[i][j];
        int cnt_s[N+1][N+1];
        memset(cnt_s,0,sizeof(cnt_s));
        for(int i=1;i<=N;i++)//计算前缀矩阵大小
                for(int j=1;j<=N;j++)
                    cnt_s[i][j]=input[i][j]+cnt_s[i-1][j]+cnt_s[i][j-1]-cnt_s[i-1][j-1];
        int s=0;
        for(int i=1;i<=N;i++)
            for(int k=i;k<=N;k++)
                for(int j=1;j<=N;j++)
                    for(int f=j;f<=N;f++)
                    {
                        int temp=cnt_s[i-1][j-1]+cnt_s[k][f]-cnt_s[k][j-1]-cnt_s[i-1][f];
                        if(cnt_s[i-1][j-1]+cnt_s[k][f]-cnt_s[k][j-1]-cnt_s[i-1][f]>s)
                            s=cnt_s[i-1][j-1]+cnt_s[k][f]-cnt_s[k][j-1...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发