yodgor mirzajonov_jacqueline novogratz

yodgor mirzajonov_jacqueline novogratz1142.MaximalClique(25)题目:Acliqueisasubsetofverticesofanundirectedgraphsuchthateverytwodistinctverticesinthecliqueareadjacent.Amaximalcliqueisacliquethatcannotbee…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1142. Maximal Clique (25)

  • 题目:
    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

  • 分析:
    该题是个公式题,完全图边和点有关系 a*(a-1)==e*2,不要使用a(a-1)/2,因为int因为精度损失,计算错误。

    1,所以该题记录了边
    2,最后一个测试点超时,cout引起,修改后通过千万别用cout/cin,数据量小的程序超时一半是这个造成

  • code:
#include<iostream>
using namespace std;
int Nv,Ne;
#include<vector>
vector<int>edge;
#include<map>
#include<algorithm>
map<int,int>in;
int g[210];
bool isClique(int *a,int c)
{
    int count=0;
    int tmp=0;
    for(int i=0;i<c;i++)
    {
        for(int j=i+1;j<c;j++)
        {
            int ta=a[i];
            int tb=a[j];
            if(ta==tb)continue;
            else if(ta<tb)tmp=ta*1000+tb;
            else tmp=tb*1000+ta;
            if(in.find(tmp)!=in.end())count++;
            //cout<<in.size()<<endl;
        }
    }
    if(c*(c-1)==2*count)return true;
    else return false;
}
bool isMax(int*a,int c)
{
    int flag[210];
    for(int i=0;i<c;i++)flag[a[i]]=1;
    for(int i=1;i<=Nv;i++)
    {
        if(flag[i]==1)continue;
        a[c]=i;
        if(isClique(a,c+1)==true)return false;
    }
    return true;
}
int main()
{
    freopen("in.txt","r",stdin);
// cin>>Nv>>Ne;
    scanf("%d%d",&Nv,&Ne);
    int a,b;
    int tmp;
    for(int i=0;i<Ne;i++)
    {
        //cin>>a>>b;
        scanf("%d%d",&a,&b);
        g[a]=g[b]=1;
        if(a<b)tmp=a*1000+b;
        else tmp=b*1000+a;
        in[tmp]=1;
    }
    int M,c;
    cin>>M;
    int q[210];
    for(int i=0;i<M;i++)
    {
        //cin>>c;
        scanf("%d",&c);
        for(int j=0;j<c;j++)
        {
            cin>>tmp;
            q[j]=tmp;
        }
        if(isClique(q,c)==true)
        {
            if(isMax(q,c)==true)
            //cout<<"Yes"<<endl;
            printf("Yes\n");
            else 
            //cout<<"Not Maximal"<<endl;
            printf("Not Maximal\n"); 
        }   
        else 
        //cout<<"Not a Clique"<<endl;
        printf("Not a Clique\n");
    }

    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188093.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 视频直播基础技术总结1

    视频直播基础技术总结1-视频直播基础技术总结11.视频直播**视频直播的5个关键的流程:录制->编码->网络传输->解码->播放视频直播平台一般包括推流端,后台系统和客户端。通常包括直播内容采集、直播后台系统和直播内容播放三个模块。1)内容采集:采集的方式有很多,从一般几十块PC摄像头到几十万的专业录制编码设备,还有移动端的手机前后置摄像头;分布式推

  • 多路复用_java多路复用

    多路复用_java多路复用1、说明socket编程的demo中使用的都是最基本的,但是一般不会真正用在项目中的代码。而实际项目中,需要面临复杂多变的需求环境,比如有多个socket连接,或者服务需要监听的时候,可能有很多so

  • 常用的数据链路层协议_数据链路层和网络层

    常用的数据链路层协议_数据链路层和网络层由于以太网中的所有的主机共享一个通信信道,因此在同一时刻只允许有一台主机发送数据,否则各个主机发送的数据就会相互干扰。站在系统的角度来看,这里各个主机所共享的通信信道就是一种临界资源,这个临界资源同一时刻只允许一台主机使用。……

    2022年10月22日
  • Java练习—-》求字符串中的最长回文子串

    Java练习—-》求字符串中的最长回文子串手贱,做了一道对于我来说挺难的题目嘿嘿!挺有意思的,分享一下文章目录前言一,题目二,思路图形解析代码前言第一次把自己的解题思维写出来,可能写的不太好,请给位原谅,哈哈哈哈额,如果有错的,请各位大佬帮我指出来哈,谢谢!!(^U^)ノ~YO一,题目求一串字符串的最长回文子串,这里以cabacabae为例二,思路图形解析第一步:观察这串字符串—》第二步:找出最长回文子串,并设数—》说明:在这里,假设知道最长回文子串,那这里的resCenter和maxRigth,reslengthgs

    2022年10月16日
  • Jmeter教程(一) – 入门

    Jmeter教程(一) – 入门一、下载登录官网Jmeter下载,得到压缩包jmeter-5.0.tgz,下载地址:http://jmeter.apache.org/download_jmeter.cgi。二、安装将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为E:\Mysoftware\apache-jmeter-5.0。三、运行点击bin目录下的jmeter.bat即可启动Jmeter。启动后可以看到…

  • idea 2022 激活码 mac_在线激活2022.03.07

    (idea 2022 激活码 mac)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号