【PAT甲级】1142 Maximal Clique

简介: 【PAT甲级】1142 Maximal Clique

1142 Maximal Clique

A clique is a subset of vertices of an undirected graph such that every two distinct vertices in the clique are adjacent. A maximal clique is a clique that cannot be extended by including one more adjacent vertex. (Quoted from https://en.wikipedia.org/wiki/Clique_(graph_theory))


Now it is your job to judge if a given subset of vertices can form a maximal clique.


Input Specification:

Each input file contains one test case. For each case, the first line gives two positive integers Nv (≤ 200), the number of vertices in the graph, and Ne, the number of undirected edges. Then Ne lines follow, each gives a pair of vertices of an edge. The vertices are numbered from 1 to Nv.


After the graph, there is another positive integer M (≤ 100). Then M lines of query follow, each first gives a positive number K (≤ Nv), then followed by a sequence of K distinct vertices. All the numbers in a line are separated by a space.


Output Specification:

For each of the M queries, print in a line Yes if the given subset of vertices can form a maximal clique; or if it is a clique but not a maximal clique, print Not Maximal; or if it is not a clique at all, print Not a Clique.


Sample Input:

8 10
5 6
7 8
6 4
3 6
4 5
2 3
8 2
2 7
5 3
3 4
6
4 5 4 3 6
3 2 8 7
2 2 3
1 1
3 4 3 6
3 3 2 1


Sample Output:

Yes
Yes
Yes
Yes
Not Maximal
Not a Clique


题意

在一个无向图中,如果一个顶点子集满足子集内的任意两个不同顶点之间都是相连的,那么这个顶点子集就被称为一个团。


如果一个团不能通过加入某个新的顶点来扩展成一个更大的团,那么该团就被称为最大团。


现在,你需要判断给定顶点子集能否构成一个最大团。


举个例子,下图中 [1,2,3,4] 就是该图的最大团,而 5 不在其中是因为 5 与 3 和 2 没有边。

思路

1.这题用邻接矩阵来存储每一条边。

2.每次询问时用数组 vers 去存储每个点值,并用 cnt 记录点数。然后先判判断该子集是否是团,如果是团再进一步判断是否为最大团。

1.判断是否是团,只需判断子集中每个点之间是否都存在边。

2.判断是否为最大团,需要先用一个数组 st 来标记子集中有哪些点,然后再遍历不是子集中的点,再去判断这些点是否和子集中的每个点都存在一条边,只要能找到一个这种点,就说明不是最大团。

3.根据判断结果,输出对应语句。


代码

#include<bits/stdc++.h>
using namespace std;
const int N = 210;
int g[N][N];
int vers[N];
bool st[N];
int n, m;
//判断是不是团
bool check_clique(int cnt)
{
    //判断每个点之间是否都存在边
    for (int i = 0; i < cnt; i++)
        for (int j = 0; j < i; j++)
            if (!g[vers[i]][vers[j]])
                return false;
    return true;
}
//判断是不是最大团
bool check_maximum(int cnt)
{
    memset(st, 0, sizeof st); //初始化
    //先将子集中的点进行标记
    for (int i = 0; i < cnt; i++)  st[vers[i]] = true;
    //然后遍历不在子集中的点
    for (int i = 1; i <= n; i++)
        if (!st[i])
        {
            //判断该点是否与子集中的所有点都有边
            bool success = true;
            for (int j = 0; j < cnt; j++)
                if (!g[i][vers[j]])
                {
                    //只要子集中有一个点与其没边,该点就不属于该团
                    success = false;
                    break;
                }
            //根据遍历结果判断是否为最大团
            if (success) return false;
        }
    return true;
}
int main()
{
    cin >> n >> m;
    //记录每条边
    for (int i = 0; i < m; i++)
    {
        int a, b;
        cin >> a >> b;
        g[a][b] = g[b][a] = true;
    }
    //开始查询
    int k;
    cin >> k;
    while (k--)
    {
        int cnt;
        cin >> cnt;
        for (int i = 0; i < cnt; i++)    cin >> vers[i];   //输入子集
        //判断是不是团
        if (check_clique(cnt))
        {
            //判断是不是最大团
            if (check_maximum(cnt))  puts("Yes");
            else    puts("Not Maximal");
        }
        else    puts("Not a Clique");
    }
    return 0;
}


目录
相关文章
|
4天前
|
人工智能 自然语言处理 Shell
🦞 如何在 Moltbot 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 Moltbot 配置阿里云百炼 API
|
8天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
|
2天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
4256 5
|
2天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
2648 15
|
3天前
|
机器人 API 数据安全/隐私保护
只需3步,无影云电脑一键部署Moltbot(Clawdbot)
本指南详解Moltbot(Clawdbot)部署全流程:一、购买无影云电脑Moltbot专属套餐(含2000核时);二、下载客户端并配置百炼API Key、钉钉APP KEY及QQ通道;三、验证钉钉/群聊交互。支持多端,7×24运行可关闭休眠。
3098 4
|
3天前
|
人工智能 安全 Shell
在 Moltbot (Clawdbot) 里配置调用阿里云百炼 API 完整教程
Moltbot(原Clawdbot)是一款开源AI个人助手,支持通过自然语言控制设备、处理自动化任务,兼容Qwen、Claude、GPT等主流大语言模型。若需在Moltbot中调用阿里云百炼提供的模型能力(如通义千问3系列),需完成API配置、环境变量设置、配置文件编辑等步骤。本文将严格遵循原教程逻辑,用通俗易懂的语言拆解完整流程,涵盖前置条件、安装部署、API获取、配置验证等核心环节,确保不改变原意且无营销表述。
1775 3
|
12天前
|
JSON API 数据格式
OpenCode入门使用教程
本教程介绍如何通过安装OpenCode并配置Canopy Wave API来使用开源模型。首先全局安装OpenCode,然后设置API密钥并创建配置文件,最后在控制台中连接模型并开始交互。
5165 8
|
3天前
|
存储 安全 数据库
使用 Docker 部署 Clawdbot(官方推荐方式)
Clawdbot 是一款开源、本地运行的个人AI助手,支持 WhatsApp、Telegram、Slack 等十余种通信渠道,兼容 macOS/iOS/Android,可渲染实时 Canvas 界面。本文提供基于 Docker Compose 的生产级部署指南,涵盖安全配置、持久化、备份、监控等关键运维实践(官方无预构建镜像,需源码本地构建)。
2136 6
|
3天前
|
人工智能 应用服务中间件 API
刚刚,阿里云上线Clawdbot全套云服务!
阿里云上线Moltbot(原Clawdbot)全套云服务,支持轻量服务器/无影云电脑一键部署,可调用百炼平台百余款千问模型,打通iMessage与钉钉消息通道,打造开箱即用的AI智能体助手。
2320 18
刚刚,阿里云上线Clawdbot全套云服务!
|
3天前
|
人工智能 安全 应用服务中间件
首个 Clawdbot 全流程部署方案!真“AI 个人助理”来了!
GitHub爆火AI Agent Moltbot(原Clawdbot)上线即获7.6万+ Star!它能理解自然语言、调用工具、自动执行任务。阿里云轻量应用服务器推出“开箱即用”部署方案:预装环境、直连百炼大模型、支持钉钉等消息通道,5分钟一键启用,稳定、安全、低成本。
首个 Clawdbot 全流程部署方案!真“AI 个人助理”来了!

热门文章

最新文章