HDU 4856 Tunnels
题目链接
题意:给定一些管道,然后管道之间走是不用时间的,陆地上有障碍,陆地上走一步花费时间1,求遍历所有管道需要的最短时间,每个管道只能走一次
思路:先BFS预处理出两两管道的距离,然后状态压缩DP求解,dp[s][i]表示状态s,停在管道i时候的最小花费
代码:
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-09 11:01:43
阅读次数:
263
题意:给你N*N的网格,‘.’表示可以走,‘#’表示不能走,m条管道,每条管道有起点和终点坐标,
Bob每次可以走到相邻的网格花费1s,问Bob走完m条管道要花多少时间;Bob在管道内不计算时间
即计算Bob从管道 i 的出口走到管道 j 的入口的时间Dis(e[i],s[j])的最小和,起点可以任意;
思路:看了题解说是状态压缩DP然后深入理解了下。
首先...
分类:
其他好文 时间:
2014-07-09 10:14:02
阅读次数:
234
原题: HDU 3362http://acm.hdu.edu.cn/showproblem.php?pid=3362开始准备贪心搞,结果发现太难了,一直都没做出来。后来才知道要用状压DP。题意:题目给出n(n #include #include #include #include #define M...
分类:
其他好文 时间:
2014-07-07 23:35:56
阅读次数:
323
题目链接:点击打开链接
题意:
给定n个点m条边的无向图
求从1点开始经过每条边至少一次最后回到1点的最小路程
显然就是找一条路径可重复的欧拉回路
思路:
首先对于欧拉回路的结论是:所有点的度数都为偶数
因为所有边至少经过一次,那么可以把题意转换成加最少多少条边使得图满足以上结论
而加的边目的是为了把奇度数转成偶度数,先floyd一下得到任意点间加边的最小花费
dp[i]表示状态...
分类:
其他好文 时间:
2014-07-01 14:47:43
阅读次数:
274
题目链接:http://poj.org/problem?id=2288
题意:每个点有一个权值Vi,找一条哈密顿路径,路径的权值来自三条:1 路径上的Vi之和 2 所有相邻点对ij的Vi*Vj之和 3 相邻连续三点i,j,k(并且三点要构成三角形)Vi*Vj*Vk之和。
解法:dp[st][i][j]表示从j走到i并且剩下集合st没有走的最大权值。关于路径书,在转移的时候顺便计算即可;...
分类:
其他好文 时间:
2014-06-28 09:07:03
阅读次数:
213
题目链接:http://poj.org/problem?id=3311
解法:标准的状压dp类型,先floyd获得两两之间最短距离。然后dp[i][j]表示剩下集合i没走,已经走到j的最短距离;
代码:/******************************************************
* @author:xiefubao
******************...
分类:
其他好文 时间:
2014-06-27 10:11:29
阅读次数:
282
Triangle War
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 2685
Accepted: 1061
Description
Triangle War is a two-player game played on the following tria...
分类:
其他好文 时间:
2014-06-27 09:34:45
阅读次数:
286
Description
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。
Input
只有一行,包含两个数N,K ( 1
Output
方案数。
Sample Input
3 2
Sample Output
16
HINT
Sou...
分类:
其他好文 时间:
2014-06-26 14:33:46
阅读次数:
148
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define ll __int64
#define mod 1000000007
using namespace std;
struct node
{
int x...
分类:
其他好文 时间:
2014-06-26 11:39:45
阅读次数:
206
简直难到没朋友。
双向bfs + 剪枝。
剪枝策略:
对于2--5位置上的数,只有当光标在对应位置时通过swap ,up,down来改变,那么当当前位置没有达到目标状态时,left和right无意义。
好了,只剪掉这里就过掉了。。。
还有比较炫酷的方法实现枚举720种排列。。。然后状压什么的。。。功力不够完全看不懂。。。。
#include
#include
#include
#...
分类:
其他好文 时间:
2014-06-25 20:11:00
阅读次数:
162