【基础练习】【最短路堆优dij】tyvj1376 魔域之战题解
来源:互联网 发布:可爱的毛衣淘宝店铺 编辑:程序博客网 时间:2024/05/09 15:41
P1376 魔域之战
时间: 1000ms / 空间: 131072KiB / Java类名: Main
描述
小A成功地在紧要关头逃离了神奇山洞,同时他也感觉自己rp大增。现在他站在了一座阴森森的城堡前,这就是江湖人称“死亡城堡”的魔域。为了rp,小A毅然决然地走了进去……
不愧是死亡城堡,险境丛生,小A又是一个大意的人,XXX他掉进了一个陷阱。
这是一个n*n的矩阵陷阱,矩阵的每一个小格内都有一个魔鬼,并且这些魔鬼属于不同的种类,种类数不超过p(1<=p<=n*n,有可能存在某一种魔鬼不在矩阵中出现)。每一种魔鬼i都有一种战斗力c[i],不同的魔鬼战斗力不同。打魔鬼也不是那么好玩的,需要消耗小A相应数量的战斗力。当小A打败了一个魔鬼后,此种类型的魔鬼就会全部消失,这样小A就可以自由的在这种类型的格子间传送,不会消耗任何的战斗力。每到一个格子,小A可以向紧邻的上下左右四个格子进发去打魔鬼,直到走出矩阵。小A开始郁闷了,他怎样才能从矩阵的第一行出发,顺利的走到矩阵的最后一行呢?所谓的顺利,就是使自己的战斗力大于0。
现在小A求助于聪明的你,希望你能求出小A顺利走出陷阱时剩余的最大战斗力。
不愧是死亡城堡,险境丛生,小A又是一个大意的人,XXX他掉进了一个陷阱。
这是一个n*n的矩阵陷阱,矩阵的每一个小格内都有一个魔鬼,并且这些魔鬼属于不同的种类,种类数不超过p(1<=p<=n*n,有可能存在某一种魔鬼不在矩阵中出现)。每一种魔鬼i都有一种战斗力c[i],不同的魔鬼战斗力不同。打魔鬼也不是那么好玩的,需要消耗小A相应数量的战斗力。当小A打败了一个魔鬼后,此种类型的魔鬼就会全部消失,这样小A就可以自由的在这种类型的格子间传送,不会消耗任何的战斗力。每到一个格子,小A可以向紧邻的上下左右四个格子进发去打魔鬼,直到走出矩阵。小A开始郁闷了,他怎样才能从矩阵的第一行出发,顺利的走到矩阵的最后一行呢?所谓的顺利,就是使自己的战斗力大于0。
现在小A求助于聪明的你,希望你能求出小A顺利走出陷阱时剩余的最大战斗力。
输入格式
第一行:两个整数n,p;
第2到n+1行是一个n*n的矩阵,矩阵中不同的数字代表不同的格子类型;
第n+2行是p个数,代表p种魔鬼的战斗力;
最后一行:小A的初始战斗力值W。
第2到n+1行是一个n*n的矩阵,矩阵中不同的数字代表不同的格子类型;
第n+2行是p个数,代表p种魔鬼的战斗力;
最后一行:小A的初始战斗力值W。
输出格式
一个整数表示小A顺利走出陷阱时剩余的最大战斗力,如果小A走不出陷阱就输出'Dangerous!';
测试样例1
输入
样例一:
3 3
1 2 1
2 1 2
1 1 1
1 2 5
7
样例二:
3 3
1 2 1
2 1 2
3 3 3
1 2 5
2
输出
样例一:
6
样例二:
Dangerous!
备注
对于30%的数据:1<=n<=50
对于100%的数据:1<=n<=500;w<=maxlongint
对于100%的数据:1<=n<=500;w<=maxlongint
BFS的思路,就是上下左右搜索,以点权为代价,搜到一个新的类型,就把相同元素全部入队,同时记录当前剩余体力,如果走到最后一行输出即可
而图论的思路,我想的略麻烦:建立一个原点,向第一排各点连边,边权为代价;每个点向右向下连双向边;相同类型的点连边权为0的双向边,跑堆优dij
这样子边太多了,大数据会爆空间。实际上更好的方法是把同一类型的点当做一个点,每次读入数据记录不同类型点之间的关系,原点连第一排有的点的种类,最后一排出现的种类连向终点,跑SPFA即可
我只写了麻烦版本的代码,然而竟然能过···顺带吐槽下我们信手改题的07级学长,泥萌现在大概大学毕业两年了吧···
——忽然一夜清香发,散作乾坤万里春
1 0
- 【基础练习】【最短路堆优dij】tyvj1376 魔域之战题解
- HDU2544-最短路(dij堆优化与spfa)
- zoj2797_最短路dij
- Dij二级最短路
- dij最短路 变形
- POJ1062->最短路Dij
- 【DayDayUp】【算法_图_最短路_之二_SPFA最劣、Dij堆优化&Johnson(结点对最短路)】(待续)
- poj 3439(dij最短路)
- hdu 2544 最短路 (dij)
- HDU 2544 最短路 Dij
- 最短路dij——POJ 2387 Til the Cows Come Home题解
- hdu 4725 The Shortest Path in Nya Graph(堆+dij,最短路,5级)
- 【基础练习】【堆】codevs1063 合并果子题解
- 基础最短路练习 一 POJ 2387
- POJ2457 dij最短路也可以做
- POJ3268 Silver Cow Party DIJ最短路
- 最短路裸题hdu-2112-DIJ
- hdu2544最短路dij+stl 实现heap
- Maven是什么
- Boost库的字符串处理算法
- ASP.NET 开发中弹出提示对话框的2种方法
- C++正则表达式库
- jQuery效果之文字图片提示
- 【基础练习】【最短路堆优dij】tyvj1376 魔域之战题解
- 透过一颗树的启发!
- 图片序列 转 视频 的终极解决方案
- 大数据性能调优之HBase的RowKey设计
- 登录网页代码
- jQuery效果之文本框失去焦点
- vim 常用命令
- 初探 Unit Test
- 致盗号者