题目:http://www.joyoi.cn/problem/tyvj-2054 把点分成几个连通块,和为0的几个点放在一块,在块内跑最小生成树作为这个块的代价: 然后状压DP,组成全集的最小代价就是答案: 1A了好高兴! 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ],hd[],ct,f[<&l…
传送门 Background 陶醉在彩虹光芒笼罩的美景之中,探险队员们不知不觉已经穿过了七色虹,到达了目的地,面前出现了一座城堡和小溪田园,城堡前的木牌上写着"Poetic Island". "这一定就是另外两位护法的所在地了--我们快进去吧!" 探险队员们快步进入了城堡,城堡大厅的羊毛沙发上坐着两个人. "你们是Nescafe的护法吧?" "是的哦~ 我们就是圣剑护法rainbow和魔杖护法freda~ 你们来这里做什么呢~"…
BZOJ_3058_四叶草魔杖_kruscal+状压DP Description 魔杖护法Freda融合了四件武器,于是魔杖顶端缓缓地生出了一棵四叶草,四片叶子幻发着淡淡的七色光.圣剑护法rainbow取出了一个圆盘,圆盘上镶嵌着N颗宝石,编号为0~N-1.第i颗宝石的能量是Ai.如果Ai>0,表示这颗宝石能量过高,需要把Ai的能量传给其它宝石:如果Ai<0,表示这颗宝石的能量过低,需要从其它宝石处获取-Ai的能量.保证∑Ai =0.只有当所有宝石的能量均相同时,把四叶草魔杖插入圆盘中央,才能…
题目:http://www.joyoi.cn/problem/tyvj-2054 枚举点集,如果其和为0,则作为一个独立的块求一下最小生成树.因为它可以不和别的块连边. 然后状压dp即可. 别忘了判断该块能不能连通. 别忘了判断无解!(0x3f 真好用) #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,M=N*(N-…
题目链接 \(2^{16}=65536\),可以想到状压DP.但是又有\(\sum A_i\neq 0\)的问题.. 但是\(2^n\)这么小,完全可以枚举所有子集找到\(\sum A_i=0\)的,先使这整个子集内满足平衡,求一棵最小生成树就一定可以了. 这样可能会不最优,我们可以用更小的子集(小的话还是最优的)去更新大的. 还需要合并这些子集.将任意两个\(\sum A_i=0\)的子集都是合法的,且会更新到所有情况. \(2^n\times 2^n\)枚举\(\sum A_i=0\)的子集…
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5765 [题目大意] 给出一张图,求每条边在所有边割集中出现的次数. [题解] 利用状压DP,计算不同的连通块,对于每条边,求出两边的联通块的划分方案数,就是对于该点的答案. [代码] #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int n,m,T,Cas=1…
题目大意 给你一个网格,每个格子有概率是\(1\)或是\(0\).告诉你每个点是\(0\)的概率,求\(1\)的连通块个数\(\bmod d=0\)的概率. 最开始所有格子的概率相等.有\(q\)次修改,每次修改一个格子的概率.要求输出初始时和每次修改后的概率. \(n\leq 200000,m\leq 3,d\leq 10,q\leq 1000\) 题解 很容易想到状压DP:前\(i\)行在第\(i\)行的状态为\(j\)时连通块个数模\(d=k\)的概率. 当\(m=3\)时每行状态有\(9…
题目描述 求一张有向图的强连通生成子图的数目对 $10^9+7$ 取模的结果. 题解 状压dp+容斥原理 设 $f[i]$ 表示点集 $i$ 强连通生成子图的数目,容易想到使用总方案数 $2^{sum[i]}$ 减去不为强连通图的方案数得到强连通图的方案数,其中 $sum[i]$ 表示点集 $i$ 中边的数目. 考虑什么样的图不是强连通图:缩点后入度为0的强连通分量对应的点集不是全集. 枚举这些入度为0的强连通分量对应的点集,由于无法保证只有这些点构成的入度为0的强连通分量,因此需要进一步容斥.…
题目描述 有 $n$ 个点,点 $i$ 和点 $j$ 之间可以连 $0\sim c_{i,j}$ 条无向边.求连成一张无向连通图的方案数模 $10^9+7$ .两个方案不同,当且仅当:存在点对 $(i,j$ ,使得 $i$ 与 $j$ 之间的边数不同. 输入 标准输入.输入第一行包含一个正整数n,表示珠子的个数.接下来n行,每行包含n个非负整数,用空格隔开.这n行中,第i行第j个数为ci,j. 输出 标准输出.输出一行一个整数,为连接方案数对1000000007取模的结果. 样例输入 3 0 2…
题目描述 给出一张 $n$ 个点 $m$ 条边的无向图和 $p$ 个特殊点,每个特殊点有一个颜色.要求选出若干条边,使得颜色相同的特殊点在同一个连通块内.输出最小边权和. 输入 第一行包含三个整数 n;m;p,表示情报站的数量,可以建立的通道数量和重要情报站的数 量.接下来 m 行,每行包含三个整数 ui;vi;wi,表示可以建立的通道.最后有 p 行,每行包含 两个整数 ci;di,表示重要情报站的频道和情报站的编号. 输出 输出一行一个整数,表示任意相同频道的情报站之间都建立通道连接所花费的…