12画


私信TA

用户名:201810203010

访问量:5181

签 名:

等  级
排  名 2761
经  验 2082
参赛次数 10
文章发表 16
年  龄 0
在职情况 学生
学  校 内蒙古工业大学
专  业

  自我简介:

TA的其他文章

解题思路:

注意事项:

参考代码:

#include <stdio.h>

#include <stdlib.h>


#define N 301

#define min(a,b) a>b?b:a;

int gxb[N][N];//关系表

int p[N][N];//房间状态

int num=N,n;

void DFS(int x,int kcs)

{

if(kcs>=num)

return;//剪子

if(x==n+1)

{

num=min(num,kcs);

return;

} //如果已经安排了 n个人,惊醒判断

int j,k;

for(j=1;j<=kcs;j++)

{

k=0;

while(p[j][k]&&!gxb[x][p[j][k]])

    k++;//找到一空位,并且与该考场人无关

if(p[j][k]==0)

p[j][k]=x,DFS(x+1,kcs),p[j][k]=0;//满足条件,下一考生 

}

p[j][0]=x;

DFS(x+1,kcs+1);

p[j][0]=0;//回溯 


 }

 

 int main()

 {

 

  int m,i,s1,s2;

  memset(gxb,0,sizeof(gxb));

  memset(p,0,sizeof(p));

  scanf("%d\n%d",&n,&m);

  for(i=1;i<=m;i++)

  {

  scanf("%d%d",&s1,&s2);

  gxb[s1][s2]=gxb[s2][s1]=1;//键关系 

 

 

}

  DFS(1,1);

  printf("%d\n",num);

return 0; 

 

 

 

 

  } 

 

 

 

 


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区