试题编号: | 201903-5 |
试题名称: | 317号子任务 |
时间限制: | 1.0s |
内存限制: | 512.0MB |
问题描述: |
|
看完题目,感觉是多源最短路径问题,最先想到的是对每个据点利用Dijkstra算法找到最近K个行星发动机的最短路径和,而这里有存在据点能到达行星发动机的数量不足K个的情况,因此在这里又加入了并查集对据点进行处理,将每一集和中存在的行星发动机数量保存在父节点中,即可通过查找每一据点的父节点知道能到达的行星发动机数量,进而进行Dijkstra算法。
代码实现后为超时0分。具体如下:
#include <map>
#include <cmath>
#include <queue>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <time.h>
#include <vector>
#include <list>
#include <iostream>
#include<iomanip>
#define INF (0x3f3f3f3f)
using namespace std;
int N, M, K;
bool Lei[10001]; //据点类型,