博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5304 基环 外向树
阅读量:5264 次
发布时间:2019-06-14

本文共 1527 字,大约阅读时间需要 5 分钟。

题意:

一个无向图,n个点,m条边,要求删掉m-n条边使得图任然连通,问方案数。

 

思路:

留下n条边,相当于一个树+一条边,这样就有一个唯一的环。

枚举这个环并看成一个点,就相当于做生成树计数

1、找环

  s是一个二进制状态,u为s中编号最小的点

  dp[s][v] 以u为起点,经过s中所有的点,并以u结尾的路径有多少条

  这样的环如果u,v有直接的边相连,再加上dp[s][v]里的路径,就可以得到若干个环

  每个环顺时针被算一次,逆时针被算一次,所以要除以2

2、生成树计数

  构造基尔霍夫矩阵,环中的点看成一个点

  这样可能会有重边,必须要保留,基尔霍夫矩阵可以计算重边的情况

  高斯消元的时候不是实数 要取模

 

#include 
#include
#include
using namespace std;typedef long long ll;const int N = 17;const int S = 1<
ch[S+2];inline void add(ll& x, ll y){ x += y; if (x >= mod) x -= mod; if (x < 0) x += mod;}inline ll gcd(ll p, ll q){ ll r; while (q){ r = p%q; p = q; q = r; } return p;}inline ll fpow(ll x, int n){ ll ret = 1; while (n){ if (n&1) ret = ret*x%mod; x = x*x%mod; n >>= 1; } return ret;}inline void prepare(){ lim = 1<
st[s] && (!(s&t[v])) && g[u][v]){ dp[s|t[v]][v] += dp[s][u]; } } for (int s=0; s
=3){ int u = st[s]; for (int i=0; i
>= 1; num[s] %= mod; }}ll gauss(ll a[][N+5], int n){ for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) a[i][j] = a[i][j]%mod; ll ret = 1; for (int i=2; i<=n; i++){ for (int j=i+1; j<=n ;j++) while (a[j][i]){ // 类似与辗转相除的消元 ll t = a[i][i]/a[j][i]; for (int k=i; k<=n; k++) add(a[i][k], -t*a[j][k]%mod); for (int k=i; k<=n; k++) swap(a[i][k], a[j][k]); ret = -ret; } if (!a[i][i]) return 0; ret = ret*a[i][i]%mod; } return (ret+mod)%mod;// for (int i=1; i<=n; i++)// for (int j=1; j<=n; j++){// if (a[i][j]<0) a[i][j] += mod;// }// ll ret = 1, val = 1;// for (int i=1; i

  

 

 

转载于:https://www.cnblogs.com/AlpcFlagship/p/4675921.html

你可能感兴趣的文章
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
希尔排序法(缩小增量法)
查看>>
PHP编程基础学习(一)——数据类型
查看>>
MongoDB-JAVA-Driver 3.2版本常用代码全整理(2) - 查询
查看>>
NPOI处理Word文本中上下角标
查看>>