题意: m个城市, n张车票, 每张车票ti匹马, 每张车票可以沿某条道路到相邻城市, 花费是路的长度除以马的数量. 求a到b的最小花费, 不能到达输出Impossible1 2 #include 3 #include 4 #include 5 #include 6 #include 7 ...
分类:
其他好文 时间:
2014-10-21 00:44:54
阅读次数:
276
0出发 每个顶点经过一次 回到0 最小花费.记忆化搜索: 1 // s: 已经访问过的节点状态 v: 当前位置 2 int dfs(int s, int v) 3 { 4 if(dp[s][v]>=0) 5 return dp[s][v]; 6 if(s==(1>...
分类:
其他好文 时间:
2014-10-21 00:43:11
阅读次数:
285
Arrange the Bulls
Time Limit: 4000MS
Memory Limit: 65536K
Total Submissions: 3509
Accepted: 1344
Description
Farmer Johnson's Bulls love playing basketball very much....
分类:
其他好文 时间:
2014-10-20 15:18:13
阅读次数:
219
感觉这两天怎么老是遇到状压啊。。。。
数字20以下,首想状压啊、、、
不过这题犯抽忘记考虑没有石头的时候了啊。
简单的状压:表示状态为j时以第i的作为结束。
PS:这题也在表扬大蓝翔的挖掘机技术啊。醉了啊。。。
Harry And Dig Machine
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/...
分类:
系统相关 时间:
2014-10-20 11:49:46
阅读次数:
290
题意:n+1个点:0--n,找一条路径从0点出发遍历1--n的点再回到0,每个点可经过不止一次,求最短路径裸的TSP问题,先用Floyd求出各个点之间最短路,再状压dp即可用n+1位二进制表示状态附模板: 1 //首先不难想到用FLOYD先求出任意2点的距离dis[i][j] 2 //接着枚举所有状...
分类:
其他好文 时间:
2014-10-19 17:01:24
阅读次数:
303
HDU 5067 Harry And Dig Machine
思路:由于点才10个,在加上一个起点,处理出每个点之间的曼哈顿距离,然后用状压dp搞,状态表示为:
dp[i][s],表示在i位置,走过的点集合为s的最小代价
代码:
#include
#include
#include
#include
using namespace std;
const int N =...
分类:
系统相关 时间:
2014-10-18 22:25:35
阅读次数:
314
题目链接题意:一个边长为n的正方形网格图,其中有一些点' . '表示可达,' # '表示不可达,你不能走到不可达的点上,以及每一个单位时间你只能走到相邻的网格(上下左右)。现在给你m条密道,每条密道起始位置(x1,y1),终点位置(x2,y2),当你从起点进去后能瞬间从终点位置出来(不花时间),但是...
分类:
其他好文 时间:
2014-10-17 21:48:31
阅读次数:
182
题意: 给一个n*n的棋盘,放上k个主教(斜走),求能放置的种类总数。Solution: 一眼看上去感觉是状压DP,发现状态太多,没办法存下来。。。 下面是一个十分巧妙的处理: 将棋盘按照国际象棋的样子分成黑白两部分,再旋转45°,以黑色为例,一行有1,3,5,7。...
分类:
其他好文 时间:
2014-10-17 20:15:29
阅读次数:
303
http://acm.hdu.edu.cn/showproblem.php?pid=4856这道题就是搜索BFS+状压dp,把所经过的隧道的状态用二进制表示,然后dp就行。bfs求出每两个隧道的最短距离。 1 #include 2 #include 3 #include 4 #incl...
分类:
其他好文 时间:
2014-10-17 13:44:33
阅读次数:
206
先预处理出每一行的可行状压值存入mark,并记录该值所含点数sum
处理每相邻两行的状压值是否可行存入 dis
DP方程:dp[i][l][k+sum[l]]+=dp[i-1][j][k]; 第i行l状态一共放了k+sum[l]+=上一行j状态放k个的方案数
#include "stdio.h"
#include "string.h"
int b[21];
int n,m...
分类:
其他好文 时间:
2014-10-17 11:58:12
阅读次数:
168