![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
状压dp
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
-
【JSOI2008】最小生成树计数【状压】
传送门 面向数据编程。因为同边权最大十个,所以可以状压。 定理:最小生成树每种边权的边数量不变。 懒得证了。 所以状压,枚举用了哪几个,然后并查集查一下,可以就++,乘起来,输出。 记得保存之前边的father数组。 #include<bits/stdc++.h> using namespace std; #define in read() #define int lon...原创 2019-10-22 21:32:07 · 92 阅读 · 0 评论 -
【poj2288】Islands and Bridges【状压dp】【方案计数】
传送门 数据很小,一看就是状压。然后以为要搞是否有边,所以用邻接矩阵秒一些。 因为有三角形权值。所以要记录上一个点和上上个点。然后判断一下是否形成三角形加权值就行。 方案计数套路:如果答案更新,直接更新。如果答案相等,就加上。 这在最短路计数之类的问题里也是通用的。 注意最后答案要除以2 。因为每条路来回走了两次。 #include<iostream> #include&...原创 2019-10-21 17:22:14 · 121 阅读 · 0 评论 -
【NOIP2017】宝藏【状态压缩】【回溯】
传送门 一年前觉得这道题简直是看都不可以看的神题。 现在想想好像简单的很。 找一个最小生成树,边权规则和根节点距离有关。 首先肯定有个枚举根节点的操作。 然后看一看12的范围状态压缩先。目标是所有点都进入联通块,那直接搜索一下。 边数也就72条不到,好像也没啥影响,,怎么乱搞都能过的鸭子。 #include<bits/stdc++.h> using namespace ...原创 2019-10-19 22:08:53 · 135 阅读 · 0 评论