ZOJ1492 题意:给一个无向图 求最大团的大小。节点数小于50

数据有限,考虑记忆化搜索,方程很好给出。

令 Si={vi,vi+1.....vn} mc[i]表示Si最大团的大小,倒着推算。

必有mc[i]=mc[i+1]或mc[i]=mc[i+1]+1 后一种情况 新的最大团必然包含vi 剪枝也是显然的。(1)current_size+remain_vertex<=ans

                                            (2)current_size+mc[i]<=ans

代码很简单

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<vector>
using namespace std;
const int maxn=100;
bool g[maxn][maxn],found;
int ans,list[maxn][maxn],n,len[maxn],mc[maxn];
void dfs(int size)
{
int i,j,k;
if(len[size]==0)
{
if(size>ans)
{
ans=size;
found=true;
}
return ;
}
for( k=0;k<len[size]&&!found;++k)
{
if(size+len[size]-k<=ans)break;
int i=list[size][k];
if(size+mc[i]<=ans)break;
for(j=k+1,len[size+1]=0;j<len[size];++j)
{
if(g[i][list[size][j]])
list[size+1][len[size+1]++]=list[size][j];
}
dfs(size+1);
} } void max_cluster()
{
int i,j;
mc[n]=ans=1;
for(int i=n-1;i>0;--i)
{
found=false;len[1]=0;
for(int j=i+1;j<=n;++j)
if(g[i][j])list[1][len[1]++]=j;
dfs(1);
mc[i]=ans;
}
}
int main()
{
freopen("t.txt","r",stdin);
while(scanf("%d",&n))
{
if(!n)return 0;
memset(g,0,sizeof(g));
memset(mc,0,sizeof(mc));
memset(list,0,sizeof(list));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
int t;scanf("%d",&t);
if(t==1)g[i][j]=1;
}
max_cluster();
printf("%d\n",ans);
}
return 0;
}

  

最新文章

  1. SmtpClient发邮件时为什么用MailMessage.From而不用MailMessage.Sender
  2. 探索软件工程道路上的我 IV (Θ∀Θ#)
  3. js判断移动端是否安装某款app的多种方法
  4. BestCoder27 1001.Jump and Jump... (hdu 5162) 解题报告
  5. DataGridView合并单元格
  6. html2canvas手机端模糊问题
  7. ion-tap选项卡及路由结合ion-tap
  8. dede数据库类使用方法$dsql【转】
  9. 详解C中volatile关键字
  10. android usb Host模式下与usb Hid 设备的通信
  11. C#对html的操作
  12. CTF 字符统计2
  13. CSS实现标题/段落省略效果的三剑客
  14. mysql的undo log和redo log
  15. Android 网络知识必知必会
  16. 【Spark深入学习-11】Spark基本概念和运行模式
  17. @responsebody 返回json
  18. poj1222 高斯消元
  19. Cocos2d-x执行时错误:Cocos2d: Get data from file(xxx.xxx) failed!
  20. Spring Boot 2.1.1.RELEASE 多数据源配置与使用

热门文章

  1. Struts2配置dtd约束
  2. 在Spring MVC Controller的同一个方法中,根据App还是WEB返回JSON或者HTML视图。
  3. DEV组件LookupEdit,ComboBoxEdit绑定数据源
  4. iOS 错误 之 Potential leak of an object stored into &#39;cs&#39;
  5. 把C#对象变成数组技术---索引器(indexer)
  6. DPM,DEM,DDPM的区别
  7. Flash Socket通信的安全策略问题 843端口
  8. Chrome 报 Resource interpreted as Script but transferred with MIME type text/plain 警告的解决办法
  9. 分析NGINX 健康检查和负载均衡机制
  10. 用php进行md5解密的源码,亲测可用