zoukankan      html  css  js  c++  java
  • A 1142 Maximal Clique (25分)

    一、技术总结

    1. 这一题就是判断无向图中一定子集是否为团(clique),是否为最大团,就是没法再选出一个结点构成新的团,团中的任意两个顶点之间可以直接接通。
    2. 然后这一题学到的东西有,使用hash用于判断存储判断之外的结点。
    3. 同时vector如果使用&进行赋值,应该进行初始化,也就是这样vector < int > v(k), 这代表着开辟了k个向量空间,但是没有进行赋值。如果没有这样进行初始化,也可以使用push_back函数进行插入初始化。
    4. 这里还有就是分三步进行讨论,首先是判断是否为团,然后再判断是否为最大团。

    二、参考代码

    #include<iostream>
    #include<vector>
    using namespace std;
    int eq[210][210];
    int main(){
    	int ne, nv, m, k, ta,tb;
    	scanf("%d%d", &nv, &ne);
    	for(int i = 0; i < ne; i++){
    		scanf("%d%d", &ta, &tb);
    		eq[ta][tb] = eq[tb][ta] = 1;
    	}
    	scanf("%d", &m);
    	for(int i = 0; i < m; i++){
    		scanf("%d", &k);
    		int hash[210] = {0}, isClique = 1, isMaximal = 1;
    		vector<int> v;
    		int num;
    		for(int j = 0; j < k; j++){
    			scanf("%d", &num);
    			v.push_back(num);
    			hash[v[j]] = 1;
    		}
    		for(int j = 0; j < k; j++){
    			if(isClique == 0) break;
    			for(int l = j + 1; l < k; l++){
    				if(eq[v[j]][v[l]] == 0){
    					isClique = 0;
    					printf("Not a Clique
    ");
    					break;
    				}	
    			}
    		}
    		if(isClique == 0) continue;
    		for(int j = 1; j <= nv; j++){
    			if(hash[j] == 0){
    				for(int l = 0; l < k; l++){
    					if(eq[v[l]][j] == 0) break;
    					if(l == k - 1) isMaximal = 0;
    				}
    			}
    			if(isMaximal == 0){
    				printf("Not Maximal
    ");
    				break;
    			} 
    		}
    		if(isMaximal == 1) printf("Yes
    ");
    	}
    	return 0;
    }
    
    作者:睿晞
    身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
    劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
    曾有一个业界大牛说过这样一段话,送给大家:   “华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Windows server 2016 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同。”
    Windows Server 2016 辅助域控制器搭建
    Windows Server 2016 主域控制器搭建
    Net Framework 4.7.2 覆盖 Net Framework 4.5 解决办法
    SQL SERVER 2012更改默认的端口号为1772
    Windows下彻底卸载删除SQL Serever2012
    在Windows Server2016中安装SQL Server2016
    SQL Server 创建索引
    C#控制台或应用程序中两个多个Main()方法的设置
    Icon cache rebuilding with Delphi(Delphi 清除Windows 图标缓存源代码)
  • 原文地址:https://www.cnblogs.com/tsruixi/p/13166259.html
Copyright © 2011-2022 走看看