HDU - 5952 Counting Cliques (dfs)

news/2024/11/29 7:58:52/

题目链接: Counting Cliques

题意:一个有N个点M条边的图,球其中由S个点构成的团的个数。一个团是一个完全子图。

题解:拿到这题想了好久。。没想到dfs就完事了。就dfs一下,回溯一下就ok了,铜牌题。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <math.h>
using namespace std;
#define LL long long
#define fi first
#define se second
#define pb(a) push_back(a)
const int MAX_N = 1e2+7;
const LL mod = 1e9+7;
const int inf = 0x3f3f3f3f;
int N,M,T,S;
int ans;
vector<int> vec[MAX_N];
int mp[MAX_N][MAX_N];
void dfs(int pos,int *sta ,int num){if(num == S){ans ++;return ;}for(int i=0;i<vec[pos].size();i++){int t = vec[pos][i];bool f = true;for(int j=0;j<num;j++){if(mp[t][sta[j]] == 0){f = false;break;}}if(f){sta[num ++] = t;dfs(t,sta,num);sta[num-1] = 0;num --;}}
}
int main()
{cin>>T;while(T--){ans = 0;for(int i=0;i<MAX_N;i++){vec[i].clear();}memset(mp,0,sizeof(mp));scanf("%d%d%d",&N,&M,&S);for(int i=0;i<M;i++){int a,b;scanf("%d%d",&a,&b);if(a > b) swap(a,b);vec[a].push_back(b);mp[a][b] = mp[b][a] = 1;}for(int i=1;i<=N;i++){int sta[MAX_N];sta[0] = i;dfs(i,sta,1);}printf("%d\n",ans);}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/doggod/p/9743166.html


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

相关文章

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…

hdoj 5952 Counting Cliques

题目链接&#xff1a;Counting Cliques 题目大意&#xff1a;给你一张n个点,m条边的无向图&#xff0c;问尺寸为s的完全图有多少个&#xff0c;尺寸即为这张完全图有多少个点&#xff0c;完全图是值每两点之间都有边 题目思路&#xff1a;这题吃时间吃的比较紧&#xff0c;想…