HDU1530 Maximum Clique dp
正解:dp
解题报告:
这儿是传送门
又是个神仙题趴QAQ
这题就直接说解法辣?主要是思想比较难,真要说有什么不懂的知识点嘛也没有,所以也就没什么好另外先提一下的知识点QAQ
首先取反,就变成了求最大独立集,就方便求一些,这是第一个小技巧(记得总结下QAQ!哪天我要写个图论技巧总结QAQ
然后把所有点平均分成两份,A和B
对A预处理出它的所有子集的最大独立集,记录下来
这里可以用dp做一下,对子集T中的任意一点v,不选就是从dp[T-v]转移来,选就是从dp[T-v-u]转移来(u是所有和v有连边的点
然后可以顺便记个方案数
然后对于B我们枚举独立集,把A中和独立集有边相连的点都删了,答案就是dp[剩余的点]
(顺便补个细节
把边状压起来
这样查询什么的时候就可以O(1)地处理掉
下面的代码是还未完成版只是mk下而已QAQ
over
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i)
#define lowbit(x) x&(-x) ll n,m,zt[],dp[],sz[]; inline ll read()
{
register char ch=getchar();register ll x=;register bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
} int main()
{
n=read();m=read();rp(i,,n)zt[i]=(<<n)-;rp(i,,m){ll t1=read(),t2=read();zt[t1]^=(<<t2);zt[t2]^=(<<t1);}
rp(i,,)dp[<<i]=,sz[<<i]=;
rp(i,,(<<)-)
{
ll tmp=i;
while(tmp)
{
ll v=lowbit(tmp);tmp-=v;
ll sz1=sz[i^v]+,nm1=dp[i^v];if(sz1>sz[i])sz[i]=sz1;if(sz1==sz[i])dp[i]+=nm1;
ll sz2=sz[(i^v)&zt[v]],nm2=dp[(i^v)&zt[v]];if(sz2>sz[i])sz[i]=sz2;if(sz2==sz[i])dp[i]+=nm2;
}
}
/*其实我现在要做应该还是做得出来的了,,,就是在右边枚举独立集然后删了所有有连边的点然后查看sz就好了,,,但是我实在不想打了,,,明天打趴QAQ*/
return ;
}
实在不会打代码,,,灵巧是真的菜QAQ
HDU1530 Maximum Clique dp的更多相关文章
- 【最大团】【HDU1530】【Maximum Clique】
先上最大团定义: 最大团问题(Maximum Clique Problem, MCP)是图论中一个经典的组合优化问题,也是一类NP完全问题,在国际上已有广泛的研究,而国内对MCP问题的研究则还处于起步 ...
- 2019牛客多校第五场 F maximum clique 1 状压dp+最大独立集
maximum clique 1 题意 给出一个集合s,求每个子集的最大独立集的权值和(权值是独立集的点个数) 分析 n比较小,一股浓浓的暴力枚举每一个子集的感觉,但是暴力枚举模拟肯定会T,那么想一想 ...
- Maximum Clique
Maximum Clique Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 回溯法——最大团问题(Maximum Clique Problem, MCP)
概述: 最大团问题(Maximum Clique Problem, MCP)是图论中一个经典的组合优化问题,也是一类NP完全问题.最大团问题又称为最大独立集问题(Maximum Independent ...
- hdu 1530 Maximum Clique (最大包)
Maximum CliqueTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- maximum clique 1
maximum clique 1 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288KSpecial Judge, 64bit IO Format: % ...
- 【HDU1530】【ZOJ1492】Maximum Clique
Position: http://poj.org/problem?id=3241 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCod ...
- POJ2479 Maximum sum[DP|最大子段和]
Maximum sum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39599 Accepted: 12370 Des ...
- hdu 1530 Maximum Clique
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1530 题目分类:最大团问题 DP + DFS 代码: #include<bits/stdc++. ...
随机推荐
- php对gzip的使用(开启)
gzip是一种压缩算法,在网络通信过程中,经常用到gzip压缩算法.比如一个文本文件,大小为100M,使用gzip压缩之后,大小可能会变成几M.在网络传输过程中,传10M和传100M,消耗的时间和带宽 ...
- 消息中间件-ActiveMQ入门实例
1.下载ActiveMQ: http://activemq.apache.org/download-archives.html 2.运行ActiveMQ 解压缩apache-activemq-5.5. ...
- write solid code 零散(原文)
整理下目录,看了这个文件,幸好未删除. 以下是<write solid code>中的原文摘录. 1.How could I have prevented this bug? 2.How ...
- [转]JVM运行时内存结构
[转]http://www.cnblogs.com/dolphin0520/p/3783345.html 目录[-] 1.为什么会有年轻代 2.年轻代中的GC 3.一个对象的这一辈子 4.有关年轻代的 ...
- mysql通过mysql_install_db初始化数据目录时使用--user选项的作用是什么?
需求描述: mysql数据库通过mysql_install_db初始化数据目录时,使用了--user选项,这里记录下该参数的作用 参数解释: 1.--user的作用:就是以哪个操作系统用户来执行mys ...
- java图形化Swing教程(一)
与多线程.泛型等不同,Swing主要在于使用. 以下主要放代码和凝视.少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing ...
- GIS-002-gdal2srtmtiles使用注意事项
本次安装和配置过程重点参考了: 1.http://blog.csdn.net/wjkwjk/article/details/52560236 2.http://blog.csdn.net/wjkwjk ...
- window 后台执行 redis(隐藏窗口)
方法是在知乎上看的,链接:https://www.zhihu.com/question/22771030 实现方法是利用一个vbe脚本去运行一个bat脚本,在bat脚本里启动exe软件 PS:要想启动 ...
- Ubuntu13.10:[3]如何开启SSH SERVER服务
作为最新版本的UBUNTU系统而言,开源,升级全部都不在话下.传说XP已经停止补丁更新了,使用UBUNTU也是一个很好的选择.ubuntu默认安装完成后只有ssh-agent(客户端模式),宾哥百度经 ...
- lnmp启动脚本
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # Ch ...