SDUT 2022 Winter Individual Contest - E ( H - Perfect Ban )

SDUT 2022 Winter Individual Contest - E ( H - Perfect Ban ),第1张

SDUT 2022 Winter Individual Contest - E ( H - Perfect Ban )

题目链接
题意:就是在一个矩阵中删去一行和一列,使得剩余的值最小。
题解:首先我们先意识到的是本题应该是没有重复的数的(虽然题目中好像没有说明,但是看了很多的题解好像都没有考虑),然后就是找到最大值和次大值,这里最大值是确定的,但是次大值是不确定的,因为次大值不知道是去掉最大值所在行还是列,所以这里我们要考虑到。在确定最次大值后, 还要进行暴力求是删去最大值的行或列,次大值的行或列。具体的在代码中有详细解释。
下面是AC代码:

#include
#include
#include
#include
using namespace std;
const int N=1100;
int a[N][N];
int main()
{
    int n,m;
    cin>>n>>m;
    int x,y;
    int maxnum=-0x3f3f3f3f;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            cin>>a[i][j];
        }
    }
    //找到最大值的行列
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            if(maxnummax2) //去掉的是列
    {
        printf("%d %dn",xx2,y);
    }
    else if(max1max1) max1=a[i][j];
            }
        }
        for(int i=1;i<=n;i++)
        {
            if(i==xx) continue;
            for(int j=1;j<=m;j++)
            {
                if(j==y) continue;
                if(max2max2) printf("%d %dn",xx,y);
        else printf("%d %dn",x,yy);
    }
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5713464.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-18
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存