蓝桥杯训练 D. 大臣的旅费(Floyd算法)

蓝桥杯训练 D. 大臣的旅费(Floyd算法)_第1张图片

题解:本题是间接求给出的N个点中哪两个点之间的距离最大(sum),找到最大距离之后路费就等于sum*(sum+1)/2+sum*10。

题目在蓝桥杯官网上只能 通过两组数据(蓝桥官网上的题目没有要求N的范围,CF这里做了缩小),后两组超时,但是codeforces上是可以完全通过的。后台测试数据自己体会,网解的用两遍DFS的也有好多代码不能通过的,我也实在没有想通更加节省时间的方法,欢迎大神赐教。

#include
#include
#include
#include
#define INF 0x3f3f3f3f
using namespace std;
int Map[25][25];
int main()
{
	int n,a,b,c;
	cin>>n;
	memset(Map,INF,sizeof(Map));
	for(int i=0;i

 

你可能感兴趣的:(蓝桥杯,Flyod算法)