状压dp
文章平均质量分 77
Lazines_by
好吧,我要工作了
展开
-
hdu 5823(状压DP)
题意:给出无向图,然后找出给它的各个非空子图染色的最小值,染色要求一条边相邻的两个点的颜色不一样。 思路:独立集是一个所有的点都不相连的点集。它的最小染色为1. 用独立集去更新它的全集; #include #include #include #include using namespace std; typedef long long ll; const原创 2017-07-15 20:55:44 · 323 阅读 · 0 评论 -
hdu 4568 (状压dp TSP问题)
题意:给出一个二维宝藏图,有些点为-1代表不能走,否则的话代表挖这个点的宝藏需要的花费。然后给出k个点,问经过出边界出发经过这k个点,再从边界结束的最小花费是多少?从哪个边界出发和结束不限制。 思路: 首先想到的就是tsp问题,不过这里首先要建边,求出这k个点到各个点的距离和到边界的最小距离。然后跑tsp的状压dp.dp[i][s]代表这个跑完s集合以i结束的最小花费,那么当j也属于这个集合的原创 2017-07-25 09:54:25 · 443 阅读 · 0 评论 -
Codeforces 895C(状压)
题目大意 n个数(n 思路 考虑到,完全平方数是那些每种质因子个数都为偶数的数,所以把每个数都分解成质因子相乘的形式,同时对每种质因子的个数对%2,因为70以内的质数只有19个,所以可以把每个数压位,第i位表示这个数的因子是否有奇数个第i个质数。 压位DP 又因为数的范围只从1~70,所以我们记录每个数出现的次数,有一个dp方程,dp[i][j] 表示考虑前i个数,相乘结果为j(压位原创 2017-11-29 13:30:00 · 499 阅读 · 0 评论