洛谷题目传送门!! 题目的N这么小,当然是选择用状压DP啦!  等等,我好像不会状缩.... 首先,我们当然是要写状态转移方程了!! 那么,如果我们设  f[s]  状态s下,所要的最小花费,那么很显然有状态转移方程: (s为总集合) f[(1 << j) | s] =  f[s] + num[i] * dis[i][j]  (从 i 点走向 j点时) 其中,num表示之前已经走过的点的数量,dis表示从i到j的边的距离(这不就是题目要求吗) 很显然,这道题用DFS来做比较方便(跑图和回溯)…
宝藏(NOIP2017) Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定. 在此基础上,小…
hdu2167 http://acm.hdu.edu.cn/showproblem.php?pid=2167 给定一个N*N的板子,里面有N*N个数字,选中一些数字,使得和最大 要求任意两个选中的数字不相邻,相邻包括上下,左右和对角线相邻. 由于N<=15,用程序判断了一下,每一行的有效状态<1600个,如果记录这些状态,然后每一行枚举当前行的上一行的状态那么极端下有1600*1600*15的复杂度,TLE 所以卡在这里很久,想不到怎么优化. 然后看了别人的代码知道了用邻接表存储哪两个状态是相…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4568 题目大意: 给一个矩阵 n*m (n m<=200),方格里如果是0~9表示通过它时要花费的代价,-1表示不能通过它. 矩阵中有k(k<=13)个珠宝,问从任意外边框出发取走所有珠宝并求走出矩阵的最小的代价. 解题思路: 先dij预处理每一个珠宝到其他其他珠宝的最小花费,不包括自己的花费.然后就是裸的TSP问题了,状态压缩dp即可. dp[i][j]表示最后到达第i个珠宝,且访问珠宝的状态…
Pieces Assignment My Tags   (Edit)   Source : zhouguyue   Time limit : 1 sec   Memory limit : 64 M Submitted : 444, Accepted : 156 Background 有一个n*m的棋盘(n.m≤80,n*m≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻(每个棋子最多和周围4个棋子相邻).求合法的方案总数. Input 本题有多组测试数据,每组输入包含三个正整数n…
Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4739   Accepted: 2506 Description Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yumm…
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前言        动态规划,永远的痛.        好了不扯远了.状态压缩动态规划,其实看名字还是较好理解的.我们在动态规划的时候,最重要的就在于状态的设计和状态转移方程.那么,如果当我们状态过多导致时间或空间不够的饿时候,就可以用到状态压缩.王队(@wyh2000)说状态压缩DP难起来的话会很难…
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快,但是骑士的话就需要对每一个格子分两种情况进行,情况非常的多,搜索肯定是会超时的.状态压缩DP就是另外一个思路的,理论上时间复杂度是8*n*2^24,但是由于限制比较多,也就能够解决了.设dp[i][j][p][q]表示第i-1行压缩后的状态是p,第i行压缩后的状态为q,且之前一共使用了j个骑士的方案…
题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上布置一片阿姆斯特朗回旋加速式阿姆斯特朗炮,那么在N行M列单位长度大小的地图上,求解阿姆斯特朗回旋加速式阿姆斯特朗炮最大的部署数量和对应部署方案总数. 输入 每组输入一行,为两个整数N,M (N <= 100:M <= 10) 输出 每组一行两个整数, 第一个为阿姆斯特朗回旋加速式阿姆斯特朗炮的个数…
问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in the homework after the deadline, the teacher will reduce his score o…