joj 儿死三八
2007-09-12 16:25
190 查看
joj 2438
这个呢 是搜索
起初想的是记下到每个点杀k个怪的最短时间
后来发现这样是不够的,因为杀的怪有不同的组合
比如
2 3 5
ooo
ooO
(初始位置为0,0)
到(1,1) 杀3个怪的最短时间是3,但是有两种走法
0,0 0,1 1,1和
0,0 1,0 1,1
但是第一种走法得不到最优解
所以光记下最短时间是不够的
我呢 就是深度优先搜索
关键是减支
1.这个骑士呢,不可能从x,y出发绕了一圈一个小怪也没杀就又回到x,y
2.假设骑士已经升级,如果从当前位置到终点的时间加上当前时间都比已得到的解差的话就没有必要继续搜下去了
#include <iostream>
using namespace std;
char graph[70][70];
int shortest[70][70];
int state[70][70][70];
int n,m,k,ans;
void init()
void preDFS(int x,int y)
void get_shortest()
void DFS(int x,int y,int now,int t)
int main()
这个呢 是搜索
起初想的是记下到每个点杀k个怪的最短时间
后来发现这样是不够的,因为杀的怪有不同的组合
比如
2 3 5
ooo
ooO
(初始位置为0,0)
到(1,1) 杀3个怪的最短时间是3,但是有两种走法
0,0 0,1 1,1和
0,0 1,0 1,1
但是第一种走法得不到最优解
所以光记下最短时间是不够的
我呢 就是深度优先搜索
关键是减支
1.这个骑士呢,不可能从x,y出发绕了一圈一个小怪也没杀就又回到x,y
2.假设骑士已经升级,如果从当前位置到终点的时间加上当前时间都比已得到的解差的话就没有必要继续搜下去了
#include <iostream>
using namespace std;
char graph[70][70];
int shortest[70][70];
int state[70][70][70];
int n,m,k,ans;
void init()
void preDFS(int x,int y)
void get_shortest()
void DFS(int x,int y,int now,int t)
int main()
相关文章推荐
- JOJ ACM 1061
- joj 1066: Fire Net II
- JOJ 1106 Complicated Expressions
- JOJ 1133 Domino Effect
- JOJ 1064: Caeser Comes Back 解题报告
- JOJ 2241 Nim Matrix
- joj 1107: Factorial
- joj 2568: Think I will Buy Me a Football Team
- 忘了是joj第几题了 剩余定理
- joj 1700 棋盘上最多放多少个马 车 王 后
- joj 2319
- joj 1989 Vampire Numbers
- joj 1595 Combinations
- zoj1828||joj1949 解题报告
- joj 1857 Catenyms
- JOJ1076 && POJ1039 Pipe 经典计算几何
- joj 2734: keyword DFA 求字符串最多匹配多少字符串 每个子串最多匹配多少个 优化算法
- joj 2526: medic(dp 背包 )
- JOJ 1170: Wire Is So Expensive (MST kruskal 无合并)
- joj 3760 JLUCPC 树状DP