F= 2019-02-19 14:48 采纳率: 50%
浏览 1042
已采纳

蓝桥杯 分考场 一段40分的代码

我不知道和其他大佬的差距在哪里,感觉是对的来着


#include<stdio>

int main()
{
 int n,a,b,k,i,j;
 int rela[101][101]={0},//关系表,默认互不认识(0)
     room[101][101]={0};//考场号,座位号

 scanf("%d",&n);
 scanf("%d",&k);

 for(i=0;i<k;i++)
 {
  scanf("%d %d",&a,&b);
  rela[b][a]=rela[a][b]=1; //认识表述为一
 }
 for(i=1;i<=n;i++)//从第一个同学开始安排,直到第n个
 {
  a=0;//从第一考场遍历
  b=0;//从第一个座位遍历
  while(room[a][b]!=0)//如果该座位没人
  {
   if(rela[i][room[a][b]]==1)//如果第i个同学和a考场b座位的人认识
   {
    a++;//换考场
    b=-1;
   }
   b++;
  }
  room[a][b]=i;//把人安排在该座位
 }
 a=0;
 while(room[a][0]!=0)
 a++;//数考场
 printf("%d",a);
 return 0;
}

  • 写回答

1条回答 默认 最新

  • Five-菜鸟级 前端领域优质创作者 2019-02-20 16:04
    关注

    你这样 选考场 有点贪心策略 你这个是先按人安排,按顺序 新来一个人 遍历教室 直到安排下,如果已开教室安排不下 就新开教室,但是也有可能,把之前安排好的人重行安排,就可以安排下了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵