Processing math: 100%

随笔分类 -  动态规划——状压DP

摘要:"题目" 题意 一个数字正方形(所有数都是两位的正整数),取了一个数后,它的周围 8 个数都不能被选,问最大取数总和。 注意数据范围 $ 3= using namespace std; int dp[16][1600],mape[16][16],sta[1600]; int n; char 阅读全文
posted @ 2019-10-25 19:25 End_donkey 阅读(109) 评论(0) 推荐(0) 编辑
摘要:第一眼看到这题,哇,这不是我刚做完的题吗?大水题!然后 这题表面很水,实际上有点坑。 题意 求经过 1n(不能遗漏) 并且回到 1 的最短路。 在看这题之前我们可以来看下这题 最短Hamilton路 这道题的要求是我们要让每个点不重不漏的经过并且最终到达 n1 我们看数据 阅读全文
posted @ 2019-10-25 08:19 End_donkey 阅读(213) 评论(0) 推荐(0) 编辑
摘要:解析 我们观察范围可以发现n非常的小,(一般来说不是搜索就是状压dp)所以说对于这题我们可以用记忆化搜索或者dp,我们发现起点不同那么最终答案也就不同,也就是说答案是跟起点有关的,于是我们便可以想到去枚举每个起点,那么我们可以定义状态 f[i] 表示当前状态为 i 的时候最小花费,那 阅读全文
posted @ 2019-10-14 20:44 End_donkey 阅读(280) 评论(0) 推荐(0) 编辑
摘要:一道状压dp题,但是竟然可以搜索搜过!!(儒雅随和)。 代码(爆搜) cpp include using namespace std; const double eps=1e 8; int T,n,m,ans; double x[25],y[25],a[25],b[25]; bool book[25 阅读全文
posted @ 2019-08-27 10:26 End_donkey 阅读(203) 评论(0) 推荐(0) 编辑
摘要:题意 我们先来了解一下基本的位运算 于( ),或 ( ) 异或() 在下面我们用(&)代表于,(|)代表或 一道状压dp题,~~状压真的太难了~~,这道题搞了比较久才弄懂,首先这道题我们是怎么想到状压dp的呢?首先看范围m using 阅读全文
posted @ 2019-08-26 21:05 End_donkey 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题意 有n个点,且2|n,要求将其分为n/2对点对使得所有点对中距离之和尽量小 输出保留两位小数 考虑数据范围先想到的是搜索,然而搜索超时,我们发现在搜索的时候有重复搜索的情况,那么考虑记忆化,看到数据范围,便想到状压dp,每个点对应一个二进制位,未配对的记为1,已经配对的记为0。如n=8,未配对的 阅读全文
posted @ 2019-08-26 20:55 End_donkey 阅读(144) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示