admin管理员组文章数量:1516870
| 试题编号: | 201503-4 |
| 试题名称: | 网络延时 |
| 时间限制: | 1.0s |
| 内存限制: | 256.0MB |
| 问题描述: |
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<limits.h>
#include<algorithm>
#include<memory.h>
#include<string.h>
using namespace std;
int n = 0, m = 0;
const int MaxN = 300;
int dis[MaxN],g[MaxN][MaxN], N;
bool v[MaxN];
void dijkstra(int k)
{
for (int i = 1; i <= N; i++)dis[i] = INT_MAX;
dis[k] = 0;
memset(v, 0, sizeof(v));
for (int i = 0; i <= N; ++i)
{
int mark = -1, mindis = INT_MAX;
for (int j = 1; j <= N; j++)
{
if (!v[j] && dis[j] < mindis){
mindis = dis[j];
mark = j;
}
v[mark] = 1;
for (int j = 1; j <= N; j++)
{
if (!v[j]){
dis[j] = min(dis[j], dis[mark] + g[mark][j]);
}
}
}
}
}
void floyd()
{
for (int k = 1; k <= N; k++){
for (int i = 1; i <= N; i++){
for (int j = 1; j <= N; j++)
g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
}
}
}
int main()
{
int i = 0, j = 0, k = 0, tem = 0;
cin >> n >> m;
N = n + m;
for (i = 1; i <= N; i++)
{
//dijkstra(i);
for (j = 1; j <= N; j++)
g[i][j] = 20002;
}
for (i = 1; i < n; i++)//交换机输入.2-n对应至上层交换机编号,
//分别表示第2、3、……、n台交换机所连接的比自己上一层的交换机的编号。
//第i台交换机所连接的上一层的交换机编号一定比自己的编号小。
{
cin >> tem;
g[tem][i + 1] = g[i + 1][tem] = 1;
}
for (i = 1; i <= m; i++)
{
cin >> tem;
g[n + i][ tem ] =g[tem][n + i] = 1;
}
tem = INT_MIN;
floyd();
for (i = 1; i <= N; i++)
{
//dijkstra(i);
for (j = 1; j <= N; j++)
if (g[i][j] > tem)tem = g[i][j];
}
cout << tem << endl;
return 0;
}版权声明:本文标题:CCF测评中的70分大解密:网络延迟挑战全面剖析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1772466765a3274704.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论