摘要: 题意:给定N个点求1-N的最短路,所加的附加条件就是这N个点前A个点为村庄,后B个点为城堡。马里奥用一双靴子,能够在一定距离(L)内花0时间进行穿梭,且只有K次机会,在这种情况下,求解一个最短路。分析:首先对于如何花费这K次机会是一个动态规划的问题,因此我们需要计算出哪些边允许我们进行无代价的穿梭,由于题目还给定了穿梭只能够从某一点开始/结束,因此必须保证某一路径总长度少于L并且题目中还有一个约束条件要求该路径中间不应该有城堡,因为城堡中有陷阱不能够在穿梭的途中有陷阱。而floyd算法能够很好的就算出哪些路径能够穿梭。解法:首先通过floyd算法从1开始枚举中间点,那么由于前A个节点时村庄,路 阅读全文
posted @ 2013-03-04 21:19 沐阳 阅读(525) 评论(1) 推荐(0) 编辑
摘要: 该题又是一个牵涉到节点之间关系通过乘法建立的关系,通过求对数将关系由乘法变为加法应该是可以的。可惜无法无法AC。改为直接相乘却过了。AC代码:#include <iostream>#include <cmath>#include <cstdlib> #include <cstdio>#include <algorithm> #include <cstring>#include <queue>#include <iomanip>using namespace std;/* 一个网络的运送问题,简化之后 阅读全文
posted @ 2013-03-04 12:52 沐阳 阅读(334) 评论(0) 推荐(0) 编辑