HDU 5952 Counting Cliques 图DFS
来源:互联网 发布:怎么样做淘宝服装模特 编辑:程序博客网 时间:2024/05/29 17:48
为了避免在搜索时重复,用了一种特殊的建图方式,即从编号小的边连向编号大的边.
因为所求的是无向完全图的个数,在无向完全图中只能找到一条符合v1
#include<bits/stdc++.h>using namespace std;const int MAXN=105;const int MAXM=1005;int V[MAXM],First[MAXN],Next[MAXM],Cnt;int T,N,M,S,Ans,Cur[MAXN];bool G[MAXN][MAXN];void Init(){ Cnt=0; Ans=0; memset(First,-1,sizeof(First)); memset(Next,-1,sizeof(Next)); memset(G,false,sizeof(G));}void AddEdge(int u,int v){ V[Cnt]=v; Next[Cnt]=First[u]; First[u]=Cnt++;}void Dfs(int u){ if (Cur[0]==S) { Ans++; return; } for (int i=First[u];i!=-1;i=Next[i]) { int v=V[i],flag=1; for (int j=1;j<=Cur[0];j++) { if (!G[v][Cur[j]]) { flag=0; break; } } if (flag) { Cur[0]++; Cur[Cur[0]]=v; Dfs(v); Cur[0]--; } }}int main(){ scanf("%d",&T); while (T--) { Init(); int a,b; scanf("%d%d%d",&N,&M,&S); for (int i=0;i<M;i++) { scanf("%d%d",&a,&b); if (a>b) swap(a,b); AddEdge(a,b); G[a][b]=G[b][a]=true; } for (int i=1;i<=N;i++) { Cur[0]=1; Cur[1]=i; Dfs(i); } printf("%d\n",Ans); } return 0;}
0 0
- HDU 5952 Counting Cliques 图DFS
- HDU 5952 Counting Cliques(dfs)
- 【HDU 5952 Counting Cliques】& DFS
- HDU 5952 Counting Cliques(dfs)
- HDU 5952 Counting Cliques dfs乱搞
- hdu 5952Counting Cliques(dfs优化)
- HDU 5952 Counting Cliques dfs + 思维
- hdu 5952Counting Cliques(dfs 优化)
- HDU 5952 - Counting Cliques
- hdu 5952 Counting Cliques
- hdu 5952 Counting Cliques
- hdu 5952 Counting Cliques
- hdu 5952 Counting Cliques(最大团思想+dfs)
- [hdu 5952 Counting Cliques]暴搜
- hdu 5952Counting Cliques(暴搜)
- HDU 5952 Counting Cliques 爆搜
- HDU-5952 Counting Cliques ,爆搜!
- hdu5952 Counting Cliques DFS
- 456. 132 Pattern
- blind deconvolution parameter tuning
- 文件的范例题目
- POJ2485 Highways 最小生成树
- codeforces 732D Exams
- HDU 5952 Counting Cliques 图DFS
- 在Docker中运行Hadoop+Spark集群
- 二叉搜索树中删除某一结点函数的另外一种实现
- HDU 5929 数据结构模拟
- Js apply()使用详解
- Linux编程用户和用户组的概念
- UVa Online Judge参考程序集合
- CodeForces 733D Kostya the Sculptor 思维题
- 百度分享插件使用经验