hdu 5305 Friends 【暴搜】
来源:互联网 发布:端口的作用是什么 编辑:程序博客网 时间:2024/05/17 18:23
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5305
题意:给一个无向图 , 每条边可以是online边也可以是offline边,问
有多少种方法使得每个节点的online边和offline边一样多
解法:暴搜。记录每个点连接的边数,奇数的直接不可能,偶数的分成两个数组,c1[i]表示i的在线朋友数,c2[i]表示i的离线朋友数,然后一条边一条边搜就行了。
代码:
#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#include <string>#include <functional>#include <iterator>#include <algorithm>#include <vector>#include <stack>#include <queue>#include <set>#include <map>#include <list>#include <bitset>#include <sstream>#include <iomanip>#include <fstream>#include <iostream>#include <ctime>#include <cmath>#include <cstring>#include <cstdio>#include <time.h>#include <ctype.h>#include <string.h>#include <assert.h>using namespace std;struct{ int u; int v;}e[100];int c1[100], c2[100];int num[100];int ans;int n, m;void dfs(int x){ if (x == m + 1) { ans++; return; } int u = e[x].u; int v = e[x].v; if (c1[u] && c1[v]) { c1[u] --; c1[v] --; dfs(x + 1); c1[u] ++; c1[v] ++; } if (c2[u] && c2[v]) { c2[u] --; c2[v] --; dfs(x + 1); c2[u] ++; c2[v] ++; } return;}int main(){ int t; scanf("%d",&t); while (t--) { memset(c1, 0, sizeof(c1)); memset(c2, 0, sizeof(c2)); memset(num, 0, sizeof(num)); scanf("%d%d",&n,&m); for (int i = 1; i <= m;i++) { scanf("%d%d",&e[i].u,&e[i].v); num[e[i].u]++; num[e[i].v]++; } int ok = 1; for (int i = 1; i <= n; i++) { c1[i] = c2[i] = num[i] / 2; if (num[i] & 1) { ok = 0; break; } } if (!ok) { printf("0\n"); continue; } ans = 0; dfs(1); printf("%d\n",ans); } return 0;}
参考自:http://blog.csdn.net/Tc_To_Top/article/details/47027079
0 0
- hdu 5305 Friends 【暴搜】
- HDU 5305(Friends-暴搜)
- 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(深搜)
- F - Friends-HDU 5305
- hdu 5305 Friends (dfs)
- HDU 5305 Friends DFS
- hdu 5305 Friends dfs
- HDU 5305 Friends
- HDU 5305 Friends(DFS)
- HDU 5305 Friends(dfs)
- HDU 5305 Friends
- 斯坦福《机器学习》Lesson5感想———1、成学习算法
- [Leetcode 123, Hard] Best Time to Buy and Sell Stock III
- Objective-C对象与Core Foundation对象
- Java I/O 详解
- Android提高(17)——第一章 Http基础详解
- hdu 5305 Friends 【暴搜】
- 关于HTML和CSS的学习心得
- oracle断开用户连接并且重新创建用户
- hdu5289RMQ求区间最大最小值和单调队列维护区间最大最小值
- ARM上的浮点运算
- Flume(NG)架构设计要点及配置实践
- django 1.8 官方文档翻译: 2-4-4 编写迁移
- 数据挖掘之文本特征提取【理论+部分java代码实现】
- 滑动条ControlSlider的使用