hdu 1530 Maximum Clique_最大团模板

题目链接

题意:给你一个有向图,求最大完全子图。

思路:套最大团模板

#include<stdio.h>
#define MAXN 100
int n,map[MAXN][MAXN],best,num[MAXN];
bool dfs(int *tmp,int total,int cnt){
	int i,j,k,a[MAXN];
	if(!total){
		if(best<cnt){
			best=cnt;
			return true;
		}
		return false;
	}
	for(i=0;i<total;i++){
		if(cnt+(total-i)<=best)return false;
		if(cnt+num[tmp[i]]<=best)return false;
		for(k=0,j=i+1;j<total;j++)
			if(map[tmp[i]][tmp[j]])
				a[k++]=tmp[j];
		if(dfs(a,k,cnt+1))
			return true;

	}
	return false;
}
int MaxNumClique(){
	int i,j,k,tmp[MAXN];
	best=0;
	for(i=n-1;i>=0;i--){
		for(k=0,j=i+1;j<n;j++)
			if(map[i][j])
				tmp[k++]=j;
		dfs(tmp,k,1);
		num[i]=best;
	}
	return best;
}
int main(int argc, char** argv) {
	int i,j;
	while(scanf("%d",&n)!=EOF,n){
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&map[i][j]);
		printf("%d\n",MaxNumClique());
	}

	return 0;
}

hdu 1530 Maximum Clique_最大团模板

时间: 2024-09-30 06:55:03

hdu 1530 Maximum Clique_最大团模板的相关文章

poj 3692 Kindergarten (最大团模板题)

题目链接:http://poj.org/problem?id=3692 Kindergarten Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5156   Accepted: 2512 Description In a kindergarten, there are a lot of kids. All girls of the kids know each other and all boys also know e

hdu 2255 二分图带权匹配 模板题

模板+注解在 http://blog.csdn.net/u011026968/article/details/38276945 hdu 2255 代码: //KM×î´ó×îСƥÅä #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; #define INF 0x0fffffff const int MAXN

hdu 1285 确定比赛名次 (模板题)

确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11353    Accepted Submission(s): 4525 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接

HDU 2222 Keyword Search AC自动机模板

#include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <queue> #include <cmath> #include <stack> #include <map> #include <ctime> #include <io

hdu 2459 Maximum repetition substring(后缀数组)

题目链接:hdu 2459 Maximum repetition substring 题意: 让你找一个重复最多的子串,并且输出. 题解: 这个是论文题,看的cxlove的题解,不是很理解为什么这样就能完全找完,当作结论使吧. 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace std; 4 namespace suffixarray{ 5 #define FN(n) f

hdu 2987最大权闭合图模板类型题

/* 最大权闭合图模板类型的题,考验对知识概念的理解. 题意:现在要辞退一部分员工,辞退每一个员工可以的到一部分利益(可以是负的),并且辞退员工,必须辞退他的下属,求最大利益和辞退的最小人数. 最大权闭合图模板类型. 求出最大权后沿着源点s,dfs到的点就为最小的人数. 证明/* 转载:利用一个经典的trick:多关键字 > 建图前,对所有b[i],执行变换b[i]=b[i]*10000-1,然后,会惊异地发现, > 此时最大流所对应的方案就是满足辞退最少人数的了. > 为什么?显然,变

极大团模板

极大团个数模板 感觉很玄学套用就对了orz上代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 #include <iostream>#include <stdio.h>#include <string.h>#define maxn 130us

hdu 4828 Xor Sum (trie 树模板题,经典应用)

hdu 4825 题目链接 题意:给定n个数,然后给出m个询问,每组询问一个数x,问n中的数y使得x和y的异或和最大. 思路:字典树..把每个数转化成二进制,注意补全前导0,使得所有数都有相同的位数. 如果想要异或和最大,那么每一位尽可能都是1. 所以做法是,先构建字典树,然后每次find的时候,尽可能按照和当前寻找的数的位相反的位的方向走(如果有的话) 比如当前位是1,那我就往0的方向走. 需要注意的是,多组数据,每次要重新初始化一遍. 做法是 在struct 中重新 root = new N

(最大团 模板) hdu 1530

Maximum Clique Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2933    Accepted Submission(s): 1570 Problem Description Given a graph G(V, E), a clique is a sub-graph g(v, e), so that for all