题意:给出一个图m条边和n个顶点,要求删除m-n条边使得原图联通,问有多少种方法。

思路:显然删除后的图是由一棵树和额外的一条边组成的,如果只有树那么可以用MATRIX-TREE定理求出生成树的数量,但是现在多了一条边。

考虑多了的这条边,这条边使得树上形成了一条环,那么我们只需要将这个环缩成一个点然后用生成树计数就可以解决了。

注意到,这道题对于经过点相同的环是等价的,考虑用状压dp来求出经过顶点状态为i的环的个数,

具体的来说,用dp[i][j]表示经过顶点集合为i且以i中最小编号为起点,以j顶点为终点的路径个数,然后对于每个状态判断起点和终点是否有边相连,如果有的话,就加当前dp[i][j]加到环的个数ans[i]上,这一步的时间复杂度为O(n^2*2^n),然后枚举所有环,对于这个环缩点然后MATRIX-TREE定理求出生成树的数量,这一步的时间复杂度为O(n^3*2^n)。

#include<cstdio>
#include<cstring>
#incl

HDU 5304 Eastest Magical Day Seep Group's Summer(状压DP+环缩点+生成树计数)相关推荐

  1. hdu5304 Eastest Magical Day Seep Group's Summer 状压dp+生成树

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5304 16个点的无向图,问能生成多少个n条边的连通图.(即多一条边的树) 先n^3 * 2^n 枚举所有的 ...

  2. [HDU 5304] Eastest Magical Day Seep Group‘s Summer

    一.题目 点此看题 二.解法 剩下 n n n条边,就意味着剩下的图是基环树,把他变成树的最好方法就是找到这个环. 我们可以把这个环缩成一个点,然后跑矩阵树定理就可以知道这样的图有多少个.我们不需要知 ...

  3. 【HDU】5304 Eastest Magical Day Seep Group's Summer【环dp+生成树计数】

    传送门:[HDU]5304 Eastest Magical Day Seep Group's Summer my  code: my~~code: #include <bits/stdc++.h ...

  4. [hdu5304]Eastest Magical Day Seep Group‘s Summer

    Eastest Magical Day Seep Group's Summer 题解 看到题面时应该很容易想到矩阵树定理,但是由于是一个条边的连通图,并不能直接用矩阵树来处理. 很容易发现,任意一个个 ...

  5. hdu5304 Eastest Magical Day Seep Group#39;s Summer 状压dp+生成树

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5304 16个点的无向图,问能生成多少个n条边的连通图.(即多一条边的树) 先n^3 * 2^n 枚举全部的 ...

  6. hdu 4778 Gems Fight! 状压dp

    转自wdd :http://blog.csdn.net/u010535824/article/details/38540835 题目链接:hdu 4778 状压DP 用DP[i]表示从i状态选到结束得 ...

  7. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 1 //#pragma ...

  8. HDU 5691 Sitting in Line 状压dp

    Sitting in Line 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5691 Description 度度熊是他同时代中最伟大的数学家,一切 ...

  9. HDU 3001 三进制状压DP

    HDU 3001 三进制状压DP N个城市,M条道路,每条道路有其经过的代价,每一个城市最多能够到达两次,求走全然部城市最小代价,起点随意. 三进制状压.存储每一个状态下每一个城市经过的次数. 转移方 ...

最新文章

  1. IDEA 中 30 秒生成 Spring Cloud Alibaba 工程
  2. java 生成水印,Java 用html模板生成 Pdf 加水印
  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1066:满足条件的数累加
  4. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(无舵机)
  5. express中res.json方法
  6. 客户端显示服务器图片不显示,客户端请求服务器图片不显示
  7. Mate 50年内无望!华为确认10月海外发布会主角是nova系列
  8. 异常处理第一讲(SEH),筛选器异常,以及__asm的扩展,寄存器注入简介
  9. kill-9导致weblogic无法启动
  10. 面向对象编程已死,OOP 永存!
  11. linux select函数用法
  12. 【写作技巧】毕业论文写作意义
  13. Delphi LiveBinds组件
  14. webstorm配置scss自动编译路径
  15. Norton AntiVirus 8.0 企业版服务器客户端安装说明
  16. 相对客观的权重计算方法——熵权法
  17. 牛客网优惠码-直通BAT面试算法精品课购买
  18. Redis源码解读(二十一)——命令传播
  19. oracle analyze any,Oracle 工具:Analyze
  20. android银联支付

热门文章

  1. CSS深入理解vertical-align和line-height的基友关系—张鑫旭
  2. 向量空间、子空间、列空间
  3. mysql安装错误删除_清除后无法重新安装mysql-server
  4. 定义枚举类型,输出三角形的形状
  5. Noip 模拟 14 2018/11/1
  6. 美登月宇航员太空服为何肮脏不堪
  7. Android全屏中adjustResize的失效的解决方案 AndroidBug5497Workaround
  8. PowerMILL中大型汽车模具3+2编程视频教程
  9. 今日头条 h5 源码 php,今日头条H5
  10. ORACLE 多表 查询作业