状压Dp
Tmotfl
这个作者很懒,什么都没留下…
展开
-
宝藏(NOIP2017)
题目链接:点击打开链接题目分析: 考场上,这个只搞了45分,可以有人用A* A了啊。我们对于遍历过的节点i我们标记为1,对于没有标记过的节点我们标记为0;然后我们用一串二进制数来表示当前局面的状态,用dp[i]表示遍历完当前二进制中1的位所表示的节点所用的最小花费。我们先枚举每一个点作为起点,然后我们开始dfs,我们枚举当前dfs到的状态所表示的遍历过的节点,然后我们枚举所有与这些节点相邻的...原创 2018-03-08 20:48:24 · 1212 阅读 · 1 评论 -
NOIP2016愤怒的小鸟(状压Dp)
题目链接:题目链接题目分析: 我们发现n的范围很小,可以考虑记忆化搜索或者状态压缩,我们设f[i]表示打掉i状态里所有为1的位所表示的小猪得最小花费;f[i]=min(f[i],f[i^(i&(G[j][k]))+1];我们枚举状态i和小猪j,k其中G[][]表示i,j所形成的抛物线所能打掉的小猪的集合,^表示在状态i中除去一个状态也就是说i的状态是由i^(i&G[j][k])转...原创 2018-03-09 19:09:31 · 302 阅读 · 0 评论 -
[ZOJ]3471 Most Powerful
题目链接: 题目链接题目分析 : 我们用0来表示这个气球存在,1表示这个气球不存在,我们遍历(1<<n)-1种状态,枚举每一个状态中存在的气球i,在枚举存在的气球j,我们可以推出i存在j不存在的状态,刷表法就可以了,d[S|(1<<(j-1))]=max(d[S]+val[i][j],d[S|(1<<(j-1)]);#include<cstdio>...原创 2018-03-10 14:39:24 · 145 阅读 · 0 评论 -
【SCOI2005】互不侵犯king(状压Dp入门)
题目链接:题目链接题目分析: 我太菜了,也只能写写自己的理解。 观察题目我们可以发现在n*n的棋盘中,对于每一行上的每一格来说我们都可以用一个2进制位来表示(0,1)其中0表示这一位不放国王,1表示这一位放国王,然后我们就可以用一个10进制的数来表示这一行的状态,状态就被压缩了。然后对于n*n的棋盘来说,对于每一行我们只能放n个国王,用状态压缩的思想来,就是n个二进制为全部为1,这也是...原创 2018-03-03 09:15:26 · 368 阅读 · 0 评论 -
【P2473】[SCOI2008]奖励关 期望概率+状压
题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。 宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立。也就是说,即使前k-1 次系统都抛出宝物1(这种情况是有可能出现的,尽管概率非常小),第k次抛出各个宝物的概率依然均为1/n。...原创 2018-03-27 20:19:17 · 239 阅读 · 0 评论 -
【POJ 2686】 Traveling by Stagecoach 状压DP
Traveling by Stagecoach Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3958 Accepted: 1590 Special Judge Description Once upon a time, there was a traveler. He plans ...原创 2018-04-05 10:49:23 · 203 阅读 · 0 评论 -
【UVA10944】Nuts for nuts.. 状压DP
题目 题解 我们可以在输入的时候对坚果进行预处理,处理出每个坚果之间和与起点之间的距离。 然后考虑进行状态压缩设dp[S][u]dp[S][u]dp[S][u]表示当前吃到的坚果的集合为SSS,当前吃到的坚果为uuu号 转移的话就非常容易了:dp[S]|(1<<(j−1))[v]=min(dp[S|(1<<(j−1))][v],dp[S][u]+G[u][v...原创 2018-04-13 21:58:46 · 421 阅读 · 0 评论 -
此博客无特殊情况已不再更新
欢迎访问新blog 博客原创 2018-06-17 10:29:24 · 401 阅读 · 0 评论