hdu 5952 - dfs+优化

news/2024/11/29 7:50:45/

题目链接:点击打开链接


题解思路:一开始直接每个枚举T了,后来直接找有连接的居然过了 = =。每次看这个点是否能加入这个团,然后分加入和不加入两种情况dfs就可以了。


代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mx = 1e2+10;
int n,m,k,top,ans,tot,head[mx*10];
bool edge[mx][mx];
int num[mx];
struct node{int y;int nxt;node(){}node(int yy,int nx):y(yy),nxt(nx){}
}Edge[mx*20];
void AddEdge(int x,int y)
{Edge[tot] = node(y,head[x]);head[x] = tot++;
}
bool check(int x)
{for(int i=0;i<top;i++)if(!edge[x][num[i]]) return 0;return 1;
}
void dfs(int x)
{if(top==k){ans++;return ;}for(int i=head[x];~i;i=Edge[i].nxt){int son = Edge[i].y;if(!check(son)) continue;num[top++] = son;dfs(son);top--;}
}
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&m,&k);int a,b;tot = top = ans = 0;memset(edge,0,sizeof(edge));memset(head,-1,sizeof(head));for(int i=0;i<m;i++){scanf("%d%d",&a,&b);edge[a][b] = edge[b][a] = 1;if(a>b) swap(a,b);AddEdge(a,b);}for(int i=1;i<=n;i++){num[0] = i;top = 1;dfs(i);}printf("%d\n",ans);}return 0;
}



http://www.ppmy.cn/news/363402.html

相关文章

HDU - 5952 Counting Cliques (dfs)

题目链接&#xff1a; Counting Cliques 题意&#xff1a;一个有N个点M条边的图&#xff0c;球其中由S个点构成的团的个数。一个团是一个完全子图。 题解&#xff1a;拿到这题想了好久。。没想到dfs就完事了。就dfs一下&#xff0c;回溯一下就ok了&#xff0c;铜牌题。 #includ…

Counting Cliques HDU - 5952

题目&#xff1a;https://vjudge.net/contest/194395#problem/E 题目大意 给你一个无向图&#xff0c;让你求其中大小为s的完全图分量。 分析 暴力来做&#xff0c;设置一个集合&#xff0c;dfs当前点是否与集合中的点都有边&#xff0c;边界为集合大小&#xff0c;会超时&…

HDU 5952 Counting Cliques(dfs)

http://acm.split.hdu.edu.cn/showproblem.php?pid5952 题目大意&#xff1a; n个点 m条边的无向图 问节点个数为s的完全子图个数 分析&#xff1a; 一开始以为是规律题找了半天规律 发现重复的情况没法处理 自己太菜了处理不了 后来就想暴力 直接暴…

Counting Cliques HDU - 5952 (暴力搜索)

Counting Cliques HDU - 5952 &#xff08;暴力搜索&#xff09; A clique is a complete graph, in which there is an edge between every pair of the vertices. Given a graph with N vertices and M edges, your task is to count the number of cliques with a specific…

hdu5952 Counting Cliques

一个关于图的需要dfs剪枝的暴力题&#xff0c;想了半天没什么思路&#xff0c;后来室友和我说的想法。 因为给你一个图&#xff0c;数大小为s的联通图的个数&#xff0c;连通图就是所有的点两两相连通&#xff0c;首先遍历i从1~n&#xff0c;找到和i相邻的点&#xff0c;如果 …

HDU-5952 Counting Cliques ,爆搜!

Counting Cliques 题意&#xff1a;给你n个点&#xff0c;m条边&#xff0c;求大小为s(s<10)的团有多少个&#xff0c;每个点的度最多20。 看到数据这么小&#xff0c;想着各种bitset暴力&#xff0c;想着把3元团预处理&#xff0c;再预处理4元团等等。写了两个多小时发现复…

hdu 5952 Counting Cliques(dfs优化)

题目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid5952 题意&#xff1a; 给一n个点m条边的图&#xff0c;找一个有s个顶点的完全子图。 分析&#xff1a; 对于每个s点完全子图&#xff0c;如果i点在子图中&#xff0c;那么就枚举与i有边的其他点&#xff0c;每加入…

利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

一、FFmpeg简介。 二、FFmpeg常用参数及命令。 三、FFmpeg在Unity 3D中的使用。   1、FFmpeg 录屏。   2、FFmpeg 推流。   3、FFmpeg 其他功能简述。 一、FFmpeg简介 对于FFmpeg&#xff0c;其官网上是这样介绍的&#xff1a; FFmpeg is the leading multimedia fram…