状压 DP
文章平均质量分 60
.
做一只大熊猫
让优秀成为一种习惯!
展开
-
Painful Bases LightOJ - 1021(状压 dp)
题目链接 题意 给我们一个 n 进制的数和一个数字 k, n <= 16, k <= 20, 这个 n 进制数中的每个进制为 的数字各不相同, 现在我们可以重新给这个数字的每个进制位重新安排顺序, 问有多少种方案数组成的数是 k 的倍数。 题意 一看到 n 很小,又是让求方案数,那肯定是状压 dp 了 又因为组成的数是 k 的倍数,且 k 比较小,那么需要 dp 中的一维,去枚举组成的数 % k 之后的余数。 那么 dp 方程为 dp [x][sta] 在状态为 sta 的时候组成的数原创 2021-06-08 20:40:17 · 106 阅读 · 0 评论 -
Collecting Gold LightOJ - 1057(TSP+bfs)
题目链接 思路 bfs 预处理两点之间的最短路径,然后用状压 dp 解决 TSP 问题 #include <bits/stdc++.h> using namespace std; #define db double #define ll long long #define sc scanf #define pr printf #define fi first #define se second #define pb push_back #define m_p make_pair原创 2021-06-08 20:06:24 · 142 阅读 · 0 评论 -
Island and study-sister HDU - 4640(最短路 spaf+状压 dp + 背包)
题目链接 题意 给我们一个 n 个点 m 条边的无向图,k 个学姐在 k 个各不相同的节点上等待 acm 队员的帮助,现在有有一对 acm 队员共 3 个人在节点 1, 当 acm 队员接到帮助请求之后,3 个队员立刻出去 k 个节点上(可以有队员停留在节点 1 不动), 有一个特殊的规定:每个节点只能被一个人走(可以被这个人走多次), 当这个人走完之后,其他人都不在走这个节点的了, 问现在最晚受到帮助的学姐被帮助的最早时间可以是多少时间(在合理安排 3 个人的路径之后)。 思路 很棒的一题 (* ̄︶原创 2021-06-08 18:10:59 · 136 阅读 · 0 评论 -
Agent 47 LightOJ - 1037(状压 DP)
题目链接 题意 一个杀手要去刺杀 n 个敌人,每个敌人都有 hp [i] 的声明值,刚开始的时候这个杀手只有一个攻击为 1 的武器(对这 n 个的攻击都是 1), 杀手攻击一次敌人,敌人会减少 当前杀手正在使用的这个武器对这个敌人的攻击力的血量, 当杀手杀死一个敌人之后会获取这个敌人的武器, 这个 n 个人总共有 n 把武器,给我们一个 n * n 的矩阵 a [][],在(i,j) 位置的数字告诉我吗 第 i 把武器对滴 j 个人造成的伤害为 a [i][j]. 思路 n 最大为 16,可以用状压原创 2021-05-31 20:53:40 · 173 阅读 · 2 评论 -
Pieces HDU - 4628(状压 DP + 回文序列预处理)
题目链接 题意 给我们一个长度小于等于 16 的字符串 S,每次操作我们可以删除 S 中的一个回文子序列,问最少需要多少次操作可以将完全 S 删除。 思路 数据范围比较少,可以考虑状压 dp。 接着怎么考虑状压?其实我们可以确定,这题可能有一个或者多个最有删除顺序, 对于某个最优的删除顺序,如下图: 我们可以从上图可以看出,一个大集合的最有拆分操作次数答案,我们不知道,但是我们可以通过去把这个大集合暴力枚举拆分成两个小集合,通过两个小的集合的最优解,拼凑出我们的答案的最优解, 对于差分出的小集合,我原创 2021-05-31 16:01:00 · 159 阅读 · 0 评论 -
Marriage Ceremonies LightOJ - 1011(状压 dp\二分图最优匹配 KM\最小费用最大流)
题目链接 题意 给我们 n 个男人和 n 个女人进行匹配,任意两个人之间进行匹配有一个权值,问怎样男女之间应该怎样匹配使总权值和最大 思路 这明显是一个二分图最大权匹配,可以用 KM 算法去做也可以用网络流去做, 由于 n<=16 , 这一题甚至可以 dfs 去做,当然也可以同 状压 dp 去做,这里说一下怎么用状压 dp 去做, 看数据范围应该可以考虑到状压 dp, 但是这题我们要想的是应该怎么去状压 dp,去状态转移呢? 其实首先我们进行状态转的时候,我们不知道、也不法确定 第 x 个男人要原创 2021-05-30 17:06:42 · 132 阅读 · 0 评论