HDU 5305 Friends
来源:互联网 发布:茶 知乎 编辑:程序博客网 时间:2024/05/20 11:35
水水的DFS
题意:n个人m个关系,要求每个人的网上朋友和现实朋友一样多,求一共有多少种关系
解:因为数据小,暴力DFS就可以了,不过要一点小剪枝
#include <stdio.h>#include <string.h>int point[10];struct aaa{ int x,y;}line[30];struct bbb{ int online,outline;}node[10];int sum;void dfs(int n,int m,int p){ if(p>m) { int flag=0; for(int i=1;i<=n;i++) { if(node[i].online!=node[i].outline||node[i].online!=point[i]) { flag=1; break; } } if(flag==0) sum++; return ; } int t=line[p].x,tt=line[p].y; for(int i=1;i<=2;i++) { if(i==1) { node[t].online++; node[tt].online++; if(node[t].online>point[t]||node[tt].online>point[tt]) { node[t].online--; node[tt].online--; continue; } } if(i==2) { node[t].outline++; node[tt].outline++; if(node[t].outline>point[t]||node[tt].outline>point[tt]) { node[t].outline--; node[tt].outline--; continue; } } dfs(n,m,p+1); if(i==1) { node[t].online--; node[tt].online--; } else { node[t].outline--; node[tt].outline--; } } return ;}int main(){ int t,n,m; int x,y; while(scanf("%d",&t)!=-1) { while(t--) { memset(point,0,sizeof(point)); memset(line,0,sizeof(line)); memset(node,0,sizeof(node)); int flag=1; sum=0; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { scanf("%d%d",&line[i].x,&line[i].y); point[line[i].x]++; point[line[i].y]++; } if(n==m&&n%2!=0) //剪枝 { printf("0\n"); continue; } for(int i=1;i<=n;i++) //剪枝 { if(point[i]%2!=0) { printf("0\n"); flag=0; break; } point[i]/=2; } if(!flag) continue; dfs(n,m,1); printf("%d\n",sum); } } return 0;}
0 0
- HDU 5305 Friends (DFS)
- hdu 5305 Friends
- HDU 5305 Friends (DFS)
- hdu 5305 Friends 【暴搜】
- hdu 5305 friends
- HDU 5305 Friends
- HDU 5305 Friends
- HDU 5305 Friends
- HDU 5305 Friends(深搜)
- F - Friends-HDU 5305
- hdu 5305 Friends (dfs)
- HDU 5305(Friends-暴搜)
- HDU 5305 Friends DFS
- hdu 5305 Friends dfs
- HDU 5305 Friends
- HDU 5305 Friends(DFS)
- HDU 5305 Friends(dfs)
- HDU 5305 Friends
- 广岛中文离线地图App上线
- http缓存
- http代理
- 关于反射的总结——代码体现
- 调整数据库的外观 数据库函数 ANSI
- HDU 5305 Friends
- 独木舟上的旅行
- 如 Git 般思考
- generic_socket_receive_data.hdev socket通信相关例程学习
- css3
- linux C中调用shell命令和运行shell脚本
- 工作一年之后的记录与总结
- hdu5311--Hidden String
- 安卓MP3播放器开发实例(3)之进度条和歌词更新的实现