A1142
Description:
clique:团,一个无向图的完全子图;
Maximal Clique:极大团,如果一个团不被其他任一团所包含,即它不是其他任一团的真子集,则称该图为图G的极大团;
给出一个无向图,判断所给序列是不是团、极大团;
思路:
- 拿到题思路十分凌乱,经柳神点拨,可以先确定是不是团,然后根据团外的点判断是不是最大团;
- 判断是不是团即判断是不是完全图,对于团内的任意两点确定之间是否存在边相连;
- 判断是不是最大,即遍历团外的所有点,若存在一点使得团内所有点与之都有边相连,则当前团非最大团;
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 205;
bool mp[maxn][maxn]; //存储无向边
int nv, ne, k, m;
vector<int>qur; //存储将要判断的序列
bool flag; //用于标志当前还是否为团,每次询问更新