L1-049 天梯赛座位分配 (20 分)

Posted MoonSky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1-049 天梯赛座位分配 (20 分)相关的知识,希望对你有一定的参考价值。

 

 

 

 我们用一个二维数组存数据。用g[i][0]存第i个学校的总人数。

然后 我们 以行为学校编号,展开每个学校的人数。

从第一列到最后一列依次由上往下编号。

#include <iostream>
using namespace std;
const int N = 110;
int g[N][N];
int n;

int main()

    cin >> n;
    int col = -1;
    for(int i = 1, num; i <= n; i++)
    
        cin >> num;
        g[i][0] = num * 10;
        col = max(col, num * 10);  // 取人数最多的当作列
    
    int pre = 0, num = 0;
    for(int i = 1; i <= col; i++)
    
        for(int j = 1; j <= n; j++)
        
            if(i > g[j][0]) continue;  // 当前学校的总人数小于当前列就不用再编号了 人都没了
            if(pre == j) ++num;  // 如果前一个编号的跟现在的编号的来自同一个学校 就要跨一个数
            g[j][i] = ++num;
            pre = j; // 记录当前编号的是哪个学校的,用于对下一位编号
        
    
    for(int i = 1; i <= n; i++)
    
        cout << \'#\' << i;
        for(int j = 1; j <= g[i][0]; j++)
        
            if(j % 10 == 1) cout << endl << g[i][j];
            else cout << \' \' << g[i][j];
        
        cout << endl;
    
    return 0;

 

不要羡慕别人喝的饮料有各种颜色,其实未必有你的白开水解渴,

以上是关于L1-049 天梯赛座位分配 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章

L1-049 天梯赛座位分配 (20分)

天梯赛题解 L1-049 天梯赛座位分配

L1-049 天梯赛座位分配

天梯赛座位分配

天梯赛L1-049(模拟+vector的使用)

题解PTA团体程序设计天梯赛L1-005 考试座位号 (15 分) Go语言|Golang