貌似咕了三个半月了(gym101915里一道),今天又遇到一道(cf1105E),就学了学惹。

最大团定义:图上取尽可能多的点,这些点构成一个完全图。

最大独立集:图上取尽可能多的点,任意两点间不连接。

可以看出来   一个图的最大团==它的补图的最大独立集 叭

那么我们可以搜索哇!(我不会搜索哇)

一个最朴素的搜索思想:  维护几个点集,当前已选择的,可以选择的,然后每次从可选择的点集里选一个与当前已选择的点都有边的点加进来,然后更新可选择的点集。

这个复杂度就比较恐怖哇

简单的优化:对点排序,每次都选一个节点编号比当前点编号大的。可以参考一下wannafly winter camp 的小木棍那题

剪枝一:如果当然已选点集大小+可选点集大小小于mx,return

剪枝二:我们从后向前选取点,保存后面的答案,如果当前点集+ans[待选]小于mx,return

其他的优化我也没看懂啊。。。

附 1105 E的代码,我真是自闭了。我傻逼了 map.count(s)和 mp[s] 是不一样的、、、调了半个多小时没看出来。。注释掉的部分是输出答案找bug的o.o

 #include <bits/stdc++.h>
using namespace std;
map<string,int> mp;
int n,m,op;string s;int cnt=-;
vector<int> v;
bool g[][];
int ans;int mx[];int alt[][];
//int cs[50];
bool DFS(int cur, int tot) {
if(cur==) {
if(tot>ans) {
ans=tot;
//for(int i=0;i<tot;i++){
// cout<<cs[i]<<' ';
//}
//cout<<endl;
return ;
}
return ;
}
for(int i=; i<cur; i++) {
if(cur-i+tot<=ans) return ;
int u=alt[tot][i];
if(mx[u]+tot<=ans) return ;
int nxt=;//cs[tot]=u;
for(int j=i+; j<cur; j++)
if(g[u][alt[tot][j]])
alt[tot+][nxt++]=alt[tot][j];
if(DFS(nxt, tot+)) return ;
}
return ;
}
int MaxClique() {
for(int i=cnt;i>=; i--) {
//cs[0]=i;
int cur=;
for(int j=i+; j<=cnt; j++)
if(g[i][j])
alt[][cur++]=j;
DFS(cur, );
mx[i]=ans;
}
return ans;
}
int main(){
ios::sync_with_stdio(false);
memset(g,, sizeof(g));
cin>>n>>m;
for(int i=;i<=n;i++){
cin>>op;
if(op==) v.clear();
else{
cin>>s;
if(!mp.count(s))mp[s]=++cnt;
int tmp = mp[s];
for(auto q:v)
g[tmp][q]=g[q][tmp]=false;
v.push_back(tmp);
}
}
cout<<MaxClique()<<endl;
}

最大团&优化的更多相关文章

  1. 【最大团转最大点独立集(匈牙利算法+时间戳优化)】BZOJ2744-[HEOI2012]朋友圈

    [题目大意] 有两个国家A和B.存在以下朋友关系: 1.A国:每个人都有一个友善值,当两个A国人的友善值a.b,如果a xor b mod 2=1,那么这两个人都是朋友,否则不是: 2.B国:每个人都 ...

  2. hdu3585 二分最大团(dp优化)

    题意       给你一些点( <= 50),让你找到k个点,使得他们之间的最小距离最大. 思路:       求最小的最大,我们可以直接二分去枚举距离,但是要注意,不要去二分double找距离 ...

  3. 第k小团+bitset优化——牛客多校第2场D

    模拟bfs,以空团为起点,用堆维护当前最小的团,然后进行加点更新 在加入新点时要注意判重,并且用bitset来加速判断和转移构造 #include<bits/stdc++.h> #incl ...

  4. web前端图片极限优化策略

    随着web的发展,网站资源的流量也变得越来越大.据统计,60%的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力. 一.现有web图片格式 我们先来看下现在常用 ...

  5. 猿团YTFCloud生态系统,全面服务创业者

    9月15日,YTFCloud已正式开启了内测. 创业者翘首以待的YTFCloud,虽然让部分创业者感受到了它的神奇,但对于更多暂时无法尝试的创业者来说,它依然有一层神秘的面纱. 今天小编就来带你近距离 ...

  6. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文 ...

  7. 页面头部title、description、keywords标签的优化

    页面头部优化<Head></Head>中间的区域中间的区域,我们称为网页的头部.在网页的头部中,通常存放一些介绍页面内容的信息,例如页面标题.描述及关键字等等.在头部优化中,除 ...

  8. 新浪微博iOS客户端架构与优化之路

    新浪微博iOS客户端架构与优化之路   随着Facebook.Twitter.微博的崛起,向UGC.PGC.OGC,自媒体提供平台的内 容消费型App逐渐形成了独特的客户端架构模式.与电商和通讯工具类 ...

  9. hdu 1530 最大团模板

    说明摘自:pushing my way 的博文 最大团 通过该博主的代码,总算理解了最大团问题,但是他实现时的代码效率却不算太高.因此在最后献上我的模板.加了IO优化目前的排名是: 6 yejinru ...

随机推荐

  1. Redis连接出现Error: Connection reset by peer的问题是由于使用Redis的安全模式

    现在网上一查出现安全模式的连接,基本都是要关闭服务端的操作,其实这种方式是不正确的,最有效的解决方式是使用stunnel进行安全模式的连接. 我碰到的问题是微软云(其实我不想用!)连接Redis,默认 ...

  2. ubuntu17.04 调试系统工具bcc,systamtap安装

    发行版 ubuntu17.04 cat lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=17.04 DISTRIB_CODENAME=zesty DISTR ...

  3. java调用sap的webservice(需要登录验证)

    1.Base64.java /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache ...

  4. spring @Transactional 事务注解

    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE, rollbackFor = ...

  5. 【JavaScript从入门到精通】第二课 初探JavaScript魅力-02

    第二课 初探JavaScript魅力-02 变量 说起变量,我们不得不提起我们有一部比较古老的电视剧叫<包青天>.包青天有一把非常厉害的宝剑叫“尚方宝剑”,见到尚方宝剑有如见到皇帝.某种程 ...

  6. Nginx 反向代理504 Gateway Time-out

    location /ssfwpt { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_ ...

  7. C# 多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的

    C#  多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的 using System;using System.Threading;using System.Threading. ...

  8. 【php】php输出jquery的轮询,5秒跳转指定url

    1.在php中直接输出jquery的轮询,5秒后跳转指定url 2.代码稍微改动,即可在html中使用 3.代码: public function alpha(){ $html = '<!DOC ...

  9. 关于docker 意外停止,重新快速启动措施

    1. 我们要重启这个镜像,需要知道这个镜像ID,类似这个: 7079ff99e10ac326726a364348853c0e508cad8ce00ae970f3c800f172a40252 那么你可以 ...

  10. SQL Server 性能优化实战系列(一)

    数据库服务器主要用于存储.查询.检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性.可靠性和稳定性等方面都有很高的要求.        下面是进行笼统的技术点说明,为的是让大家有一个整 ...