L1-049 天梯赛座位分配 (20 分)——测试点1,2分析
题目链接
如果测试点1,2过不起的小伙伴看看这两组样例,只要做到了,本校的学生不挨着坐就可以过。意思是同一个学校的学生
x
x
x 和学生
x
+
1
x+1
x+1 的位置不能挨着
//#case1:
1
1
#1
1 3 5 7 9 11 13 15 17 19
//#case2:
2
2 1
#1
1 3 5 7 9 11 13 15 17 19
21 23 25 27 29 31 33 35 37 39
#2
2 4 6 8 10 12 14 16 18 20
AC代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+9;
struct node
{
int cnt;
vector<int> ID;
}a[N];
int st[N];
int main(){
int n;
cin>>n;
int mx=0;
int sum=0;
for(int i=1; i<=n; i++){
int x;
cin>>x;
mx=max(x,mx);
a[i].cnt=x;
sum+=x*10;
}
int id=0;
for(int i=1; i<=sum; i++){
//各个学校
int tmp=n;
for(int j=1; j<=n; j++) {
if(a[j].ID.size()==a[j].cnt*10) tmp--;
}
for(int j=1; j<=n; j++){
if(a[j].ID.size()==a[j].cnt*10) continue;
id++;
if(tmp==1&&st[id-1]==j) id++;
st[id]=j;
a[j].ID.push_back(id);
}
}
for(int i=1; i<=n; i++){
cout<<"#"<<i<<'\n';
for(int j=0; j<a[i].ID.size(); j++){
printf("%d%c",a[i].ID[j],(j+1)%10==0?'\n':' ');
}
// puts("");
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话