マトリックスコイルPAT Bブラシタイトルロード1050(25分)

1050マトリックスコイル(25分)

この問題は、非昇順によりにおけるフィルN整数任意の正を必要とする「螺旋マトリックス」を いわゆる「スパイラルマトリックス」は、時計回りの螺旋方向を充填、グリッドから始まる最初のものの左上隅を指します。MはN×Nに等しく、m≥n; M-nおよびすべての可能な値の最小値:m行n列の必要なマトリクス・サイズは、条件を満たしています。
入力フォーマット:
入力ライン1はNの整数正で与えられ、第二行は任意の正の整数Nを充填します 未満10 ^ 4のすべての数字は、隣接する数字は、スペースで区切られています。
出力形式:
出力コイル行列。n個の各列、M行の合計。隣人は、スペースで区切られ、行の最後には、余分なスペースを持っていないかもしれません。
サンプル入力:
12れる
3,776,209,876,425,395 60 81 58 93
出力サンプル:
98 95 93
42 81 37である[
53 20 76である
58 60 76

分析:

m行n列の値は、数Nの整数部のNルートから開始し、最初に計算されるが、満たすNの%N == 0を見つけることは最初は、mの値がNに等しい1に前方に押された/ N。
層により充填を充填する際に、フォントパッケージ開口マトリックス層、階層レベルスパイラル行列演算であるmの値が偶数である場合、mは奇数、M個の層の数である場合、層の数がm / 2 / + 1 2、レベル= M / 2 + M% 2は、 格子の左上隅、充填時計回りの螺旋方向から出発し、それがされているため、その結果、レベル層の0からiに対する外部制御ループは、内側層右上サイクルの左、右下に左下、右下の右上、左上を充填する層の左の順序を下げ、音符もTに対する内部制御ループ<= N - 1、行列のヘリカルエレメントのすべての場合ためすでに彼らは完成で満たされている、あなたは詰め替えできません

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
int cmp(int a, int b) {return a > b;}
int main() {
    int N, m, n, t = 0;
    scanf("%d", &N);
    for (n = sqrt((double)N); n >= 1; n--) {
        if (N % n == 0) {
            m = N / n;
            break;
        }
    }
    vector<int> a(N);
    for (int i = 0; i < N; i++)
        scanf("%d", &a[i]);
    sort(a.begin(), a.end(), cmp);
    vector<vector<int> > b(m, vector<int>(n));
    int level = m / 2 + m % 2;
    for (int i = 0; i < level; i++) {
        for (int j = i; j <= n - 1 - i && t <= N - 1; j++)
                b[i][j] = a[t++];
        for (int j = i + 1; j <= m - 2 - i && t <= N - 1; j++)
                b[j][n - 1 - i] = a[t++];
        for (int j = n - i - 1; j >= i && t <= N - 1; j--)
                b[m - 1 - i][j] = a[t++];
        for (int j = m - 2 - i; j >= i + 1 && t <= N - 1; j--)
                b[j][i] = a[t++];
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0 ; j < n; j++) {
            printf("%d", b[i][j]);
            if (j != n - 1) printf(" ");
        }
        printf("\n");
    }
    return 0;
}

发布了73 篇原创文章 · 获赞 0 · 访问量 539

おすすめ

転載: blog.csdn.net/derbi123123/article/details/103791221