Codeforces Beta Round #94 (Div. 2 Only) B. Students and Shoelaces

来源:互联网 发布:windows桌面经典壁纸 编辑:程序博客网 时间:2024/05/16 05:21

这题是使用暴搜过的  使用了一个map的二维数组存储了边和边之间的链接 用1表示了链接  用0表示了不连接   接着用一个一维数组保存了各个点的连接数  也就是节点数  然后在使用一个数组保存了所有边界点的点 。方法很暴力   ,赶脚代码写的很丑。

# include <stdio.h># include <string.h>int d[105],s[105];int count=0,n;int map[105][105]; int dd(){int i,mark=0;for(i=1;i<=n;i++){if(d[i]==1){s[count++]=i;d[i]=0;mark=1;}}return mark;}void res(){int i,j;for(i=0;i<count;i++){for(j=0;j<=n;j++){if(map[s[i]][j]){d[j]--;map[s[i]][j]=0;}}}}int main (){int m,sum=0,x,y,i;memset(d,0,sizeof(d));memset(map,0,sizeof(map));scanf("%d %d",&n,&m);for(i=0;i<m;i++){scanf("%d %d",&x,&y);d[x]++;d[y]++;map[x][y]=1;map[y][x]=1;}while(dd()){res();sum++;}printf("%d\n",sum);return 0;}