欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

A. Beautiful Matrix

程序员文章站 2022-03-21 22:17:43
A. Beautiful Matrix添加链接描述题目描述给你一个 5 x 5 的矩阵,且被 24 个 0 和 1 个 1 填充。矩阵以 1~5 作为行标和列标。同时拥有两种操作将相邻两行交换将相邻两列交换求将 1 移动到矩阵中心即(3,3)位置所需要的最小操作数分析将 1 移动到中心主要分为两步操作先将 1 移动到第 3 行,需要的步数为 1 的行标与 3 的差值再将 1 移动到第 3 列,需要的步数为 1 的列标与 3 的差值代码#include

A. Beautiful Matrix

添加链接描述

题目描述

给你一个 5 x 5 的矩阵,且被 24 个 0 和 1 个 1 填充。矩阵以 1~5 作为行标和列标。同时拥有两种操作

  • 将相邻两行交换
  • 将相邻两列交换
    求将 1 移动到矩阵中心即(3,3)位置所需要的最小操作数

分析

将 1 移动到中心主要分为两步操作

  • 先将 1 移动到第 3 行,需要的步数为 1 的行标与 3 的差值
  • 再将 1 移动到第 3 列,需要的步数为 1 的列标与 3 的差值

代码

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e2 + 10;
int a[6][6];
int main() {
    ios::sync_with_stdio(false);
    int x, y;
    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= 5; j++) {
            cin >> a[i][j];
            if (a[i][j] == 1) x = i, y = j;
        }
    }
    int ans = abs(x - 3) + abs(y - 3);
    cout << ans << endl;

    return 0;
}

本文地址:https://blog.csdn.net/w_weirdo/article/details/107885376

相关标签: Codeforces练习A