欢乐赛#54 T5 题解
2025-08-25 19:25:44
发布于:北京
4阅读
0回复
0点赞
依题意模拟即可
但注意:
- 排序的时候不要把 也排了
- 每个班是一列,不是一行(别把 和 搞混)
可使用 处理每个班级并排序
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[105][105];
vector<int> v;
int main(){
cin>>n>>m;
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for (int i=1;i<=m;i++){//注意班级数为m
v.clear();
for (int j=1;j<=n;j++){//注意每个班人数(最多)为n
if (a[j][i]==0){
break;
}
v.push_back(a[j][i]);//注意下标
}
sort(v.begin(),v.end());
for (int j=1;j<=v.size();j++){
a[j][i]=v[j-1];//注意下标
}
}
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cout<<setw(4)<<a[i][j];//四个字符的宽度
}
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个