hdu5305Friends dfs
2015-07-23 17:56
323 查看
//给一个无向图 , 每条边可以是online边也可以是offline边,问
//有多少种方法使得每个节点的online边和offline边一样多
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn = 110 ;
int on[maxn] , off[maxn];
int x[maxn] , y[maxn] ;
int degree[maxn] ;
int ans ;
int n , m ;
void dfs(int num)
{
if(num == m+1)
{
for(int i = 1;i <= n;i++)
if(on[i] != off[i])
return ;
ans++;return ;
}
int u = x[num] , v = y[num] ;
if((on[u] < degree[u]/2) && (on[v] < degree[v]/2))
{
on[u]++;on[v]++;
dfs(num+1);
on[u]--;on[v]--;
}
if(off[v] < degree[v]/2 && off[u] < degree[u]/2)
{
off[u]++;off[v]++ ;
dfs(num+1) ;
off[u]--;off[v]-- ;
}
}
int main()
{
int T ;
scanf("%d" ,&T) ;
while(T--)
{
scanf("%d%d" ,&n , &m) ;
memset(degree , 0 , sizeof(degree)) ;
memset(on , 0 , sizeof(on)) ;
memset(off, 0 , sizeof(off)) ;
for(int i = 1;i <= m;i++)
{
scanf("%d%d" ,&x[i] ,&y[i]) ;
degree[x[i]]++;
degree[y[i]]++;
}
ans = 0 ;
dfs(1);
printf("%d\n" , ans) ;
}
return 0 ;
}
//有多少种方法使得每个节点的online边和offline边一样多
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn = 110 ;
int on[maxn] , off[maxn];
int x[maxn] , y[maxn] ;
int degree[maxn] ;
int ans ;
int n , m ;
void dfs(int num)
{
if(num == m+1)
{
for(int i = 1;i <= n;i++)
if(on[i] != off[i])
return ;
ans++;return ;
}
int u = x[num] , v = y[num] ;
if((on[u] < degree[u]/2) && (on[v] < degree[v]/2))
{
on[u]++;on[v]++;
dfs(num+1);
on[u]--;on[v]--;
}
if(off[v] < degree[v]/2 && off[u] < degree[u]/2)
{
off[u]++;off[v]++ ;
dfs(num+1) ;
off[u]--;off[v]-- ;
}
}
int main()
{
int T ;
scanf("%d" ,&T) ;
while(T--)
{
scanf("%d%d" ,&n , &m) ;
memset(degree , 0 , sizeof(degree)) ;
memset(on , 0 , sizeof(on)) ;
memset(off, 0 , sizeof(off)) ;
for(int i = 1;i <= m;i++)
{
scanf("%d%d" ,&x[i] ,&y[i]) ;
degree[x[i]]++;
degree[y[i]]++;
}
ans = 0 ;
dfs(1);
printf("%d\n" , ans) ;
}
return 0 ;
}
相关文章推荐
- mysql进阶(四)mysql中select
- windows 设置脚本IP
- Codeforces Round #107 (Div. 2)---A. Soft Drinking
- unity碰撞组件、刚体组件
- mysql的配置文件my.cnf
- Java设计模式(一) 之 详解单例模式
- 斐波那契(递归的应用)
- window.location.href后面的url带多个参数
- ATL/COM----IDL和MIDL之详解
- voltDB探索工具
- LeetCode—— Binary Tree Traversal
- Android 人脸特征点检测(主动形状模型) ASM Demo (Active Shape Model on Android)
- mysql进阶(三)游标简易教程
- 小断大端问题
- C#实现看门狗监控tomcat运行、定制任务计划
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- hdu 4741——Save Labman No.004
- mysql进阶(三)游标简易教程
- Mongodb的安装和使用
- Discuz avatar上传头像,上传完后刷新当前页面