zoukankan      html  css  js  c++  java
  • A1105 Spiral Matrix [螺旋矩阵]

    在这里插入图片描述
    先算出行列,然后算出层数和行数的关系,然后每一层再每个边赋值,类似于这样循环赋值找出关系就行
    在这里插入图片描述

    #include<iostream>
    #include<vector>
    #include<queue>
    #include<stack>
    #include<string>
    #include<math.h>
    #include<algorithm>
    #include<map>
    #include<cstring>
    #include<set>
    using namespace std;
    bool cmp(int a, int b)
    {
    	return a > b;
    }
    int main()
    {
    	int N, m, n, t = 0;
    	cin >> N;
    	for (n = sqrt(N); n >= 1; n--)
    	{
    		if (N % n == 0)
    		{
    			m = N / n;
    			break;
    		}
    	}
    	vector<int>a(N);
    	for (int i = 0; i < N; i++)
    	{
    		cin >> 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-i&&t<N; j++)
    		{
    			b[i][j] = a[t++];
    		}
    		for (int j = i + 1; j < m - 1-i && t < N; j++)
    		{
    			b[j][n-1-i] = a[t++];
    		}
    		for (int j = n - 1 - i; j >= i && t < N; j--)
    		{
    			b[m - 1 - i][j] = a[t++];
    		}
    		for (int j = m - 2-i; j > i && t < N; j--)
    		{
    			b[j][i] = a[t++];
    		}
    	}
    	for (int i = 0; i < m; i++)
    	{
    		for (int j = 0; j < n; j++)
    		{
    			cout << b[i][j];
    			if (j != n - 1) cout << " ";
    		}
    		cout << endl;
    	}
    	return 0;
    
    }
    
  • 相关阅读:
    400
    Eclipse中的Link with Editor功能是如何实现
    SET NOCOUNT
    response的响应头相关方法
    response发送状态码
    myeclipse在开发前的一些设置
    网站访问量统计案例
    使用ServletContext获取相关资源的方法
    获取web.xml文件中初始化参数
    域对象
  • 原文地址:https://www.cnblogs.com/Hsiung123/p/13811981.html
Copyright © 2011-2022 走看看