weixin_44560919
F=
采纳率50%
2019-02-19 14:48 阅读 972

蓝桥杯 分考场 一段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条回答 默认 最新

  • 已采纳
    qq_41923622 Five-菜鸟级 2019-02-20 16:04

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

    点赞 评论 复制链接分享

相关推荐