independent set 1

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 102400K,其他语言204800K
64bit IO Format: %lld

题目描述

Note: For C++ languages, the memory limit is 100 MB. For other languages, the memory limit is 200 MB.

In graph theory, an independent set is a set of nonadjacent vertices in a graph. Moreover, an independent set is maximum if it has the maximum cardinality (in this case, the number of vertices) across all independent sets in a graph.

An induced subgraph G'(V', E') of a graph G(V, E) is a graph that satisfies:

* V′⊆V

* edge (a,b)∈E′ if and only if a∈V′,b∈V′, and edge (a,b)∈E;

Now, given an undirected unweighted graph consisting of n vertices and m edges. This problem is about the cardinality of the maximum independent set of each of the 2^n possible induced subgraphs of the given graph. Please calculate the sum of the 2^n such cardinalities.

输入描述:

  1. The first line contains two integers n and m (2n26,0mn×(n1)​) --- the number of vertices and the number of edges, respectively. Next m lines describe edges: the i-th line contains two integers xi,yi (0xi<yi<n) --- the indices (numbered from 0 to n - 1) of vertices connected by the i-th edge.
  2.  
  3. The graph does not have any self-loops or multiple edges.

输出描述:

  1. Print one line, containing one integer represents the answer.

输入

  1. 3 2
  2. 0 1
  3. 0 2

输出

  1. 9

说明

  1. The cardinalities of the maximum independent set of every subset of vertices are: {}: 0, {0}: 1, {1}: 1, {2}: 1, {0, 1}: 1, {0, 2}: 1, {1, 2}: 2, {0, 1, 2}: 2. So the sum of them are 9.
    链接:https://ac.nowcoder.com/acm/contest/885/E
    来源:牛客网

题意:求一个图的2^n种子图的最大点独立集。
思路:

•我们可以用一个 n-bit 2 进制整数来表示一个点集,第 i 个 bit 是 1 就代表点集包含第 i 个 点,若是 0 则不包含 
 • 每个点相邻的点也可以用一个 n-bit 2 进制整数表示,计做 ci,若第 i 个点和第 j 个点相邻, ci 的第 j 个 bit 是 1,否则是 0
 • 记 x 的最低位且是 1 的 bit 的位置是 lbx
 • 令 dp[x] 代表点集 x 的最大独立集 size,那么我们能够根据点 lbx 是否属于最大独立集来列 出以下关系式:
 dp[x] = max(dp[x - (1<<lbx)], dp[x & (~clb_x)] + 1) (使用 c 语言运算符)

•高效位运算参考博客:https://blog.csdn.net/yuer158462008/article/details/46383635

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. char dp[<<];
  4. int Map[]={};
  5. int max(char a,int b)
  6. {
  7. if(a>b)return a;
  8. return b;
  9. }
  10. int main()
  11. {
  12. int n,m;
  13. scanf("%d %d",&n,&m);
  14.  
  15. while(m--)
  16. {
  17. int u,v;
  18. scanf("%d %d",&u,&v);
  19. Map[u]|=(<<v);
  20. Map[v]|=(<<u);
  21. }
  22. for(int i=;i<n;i++)Map[i]|=<<i;
  23.  
  24. int upper=<<n;
  25. long long ans=;
  26. for(int i=;i<upper;i++)
  27. {
  28. int lbx=__builtin_ctz(i);
  29. dp[i] = max(dp[i - (<<lbx)] , dp[i & (~Map[lbx])] + );
  30. ans+=dp[i];
  31. }
  32. printf("%lld\n",ans);
  33. return ;
  34. }

independent set 1的更多相关文章

  1. 写一个程序可以对两个字符串进行测试,得知第一个字符串是否包含在第二个字符串中。如字符串”PEN”包含在字符串“INDEPENDENT”中。

    package lovo.test; import java.util.Scanner; public class Java { @param args public static void main ...

  2. Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机 ...

  3. [ZZ] KlayGE 游戏引擎 之 Order Independent Transparency(OIT)

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2233 http://dogasshole.iteye.com/blog/1429665 ht ...

  4. Andrew Ng机器学习公开课笔记–Independent Components Analysis

    网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于 ...

  5. Questions that are independent of programming language. These questions are typically more abstract than other categories.

    Questions that are independent of programming language.  These questions are typically more abstract ...

  6. Interview-Largest independent set in binary tree.

    BT(binary tree), want to find the LIS(largest independent set) of the BT. LIS: if the current node i ...

  7. 【转】NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。

    原文网址:http://blog.csdn.net/hxdanya/article/details/39371759 由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题. ...

  8. 基于Hama并联平台Finding a Maximal Independent Set 设计与实现算法

    笔者:白松 NPU学生. 转载请注明出处:http://blog.csdn.net/xin_jmail/article/details/32101483. 本文參加了2014年CSDN博文大赛,假设您 ...

  9. More than one file was found with OS independent path 錯誤

    More than one file was found with OS independent path 'lib/armeabi/libmrpoid.so',. 翻譯過來就是:在操作系統的獨立目錄 ...

  10. More than one file was found with OS independent path 'META-INF/LICENSE' | Error:Could not read \build\intermediates\typedefs.txt (系统找不到指定的文件。)

    FAQ1: Error:Could not read E:\new\PlatformLibrary\CommonLibrary\build\intermediates\typedefs.txt: E: ...

随机推荐

  1. Git 查看、删除、重命名远程分支

    原文地址:http://blog.csdn.net/sunnyyoona/article/details/52065544 1. 查看远程分支 分支加上-a参数可以查看远程分支,远程分支会用红色表示出 ...

  2. 初识OpenCV-Python - 005: 识别视频中的蓝色

    此次主要学习了如何将BGR转成HSV,主要用到cv2.cvtColor()和cv2.inRange()函数来识别视频中的蓝色物体. code: import cv2import numpy as np ...

  3. 能量项链 /// oj23800

    题目大意: N( 4 ≤ N ≤ 100 ),表示项链上珠子的个数 第二行是N个用空格隔开的正整数,所有的数均不超过1000. 第 i 个数为第 i 颗珠子的头标记( 1 ≤ i ≤ N ), 当 1 ...

  4. memcache 使用手册

    Memcached 教程 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fit ...

  5. eclipse中启动tomcat之后,项目一直重复部署导致内存报警!!!

    项目环境:jdk1.8+tomcat8.0; 出现该问题的原因:目前还没有确定,网友有很多的说法. 但是我在部署其中一个项目时出现此情况,在同样的环境下部署另外一个项目未出现此情况. 其中的一种解决方 ...

  6. 0902NOIP模拟测试赛后总结

    rank1- rank3- rank4- rank10- rank16- 又考挂了.水平还是不行啊.和天皇差距太大了. 赛时A题的人好多啊.都是大佬.我一个正解都不会打……哭. T1想到dp和拓扑,然 ...

  7. BCB怎么调用DLL中的函数

    推荐你看<BCB编写DLL终极手册>这篇文章如下片段:二. 静态调用 DLL使用 $BCB path\Bin\implib.exe 生成 Lib 文件,加入到工程文件中将该文件拷贝到当前目 ...

  8. HDU 3923 Invoker | 暑训Day1 C题填坑

    暑训第一天,专题为组合数学与概率期望. 最近一个月都没有学习新的知识,上午听聚聚讲课头脑都是一片空白.加上长期没刷题,下午做练习题毫无感觉.到晚上总算理清了蓝书上的一些概念,跟着榜单做题.最后唯独剩下 ...

  9. matlab调用keras深度学习模型(环境搭建)

    matlab没有直接调用tensorflow模型的接口,但是有调用keras模型的接口,而keras又是tensorflow的高级封装版本,所以就研究一下这个……可以将model-based方法和le ...

  10. Python学习day38-并发编程(线程)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...