标签:
Time Limit: 2000MS | Memory Limit: 30000K | |
Total Submissions: 4216 | Accepted: 2137 | |
Case Time Limit: 1000MS |
Description
Input
Output
Sample Input
7 6 1 6 13 E 6 3 9 E 3 5 7 S 4 1 3 N 2 4 20 W 4 7 2 S
Sample Output
52
Hint
Source
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<queue> using namespace std; const int maxn = 10005; vector<int> son[maxn], w[maxn]; bool vis[maxn], viss[maxn]; int f[maxn]; int bfs(int root){ int i, j, k; int ans = root, maxx = 0; queue<int> q; memset(vis,0,sizeof(vis)); memset(f,0,sizeof(f)); q.push(root); vis[root] = 1;f[root] = 0;viss[root] = 1; while(!q.empty()){ root = q.front(); q.pop(); for(i=0;i<son[root].size();i++){ if(vis[son[root][i]]==0){ q.push(son[root][i]); vis[son[root][i]] = 1;viss[son[root][i]] = 1; f[son[root][i]] = f[root]+w[root][i]; if(maxx<f[son[root][i]]){ maxx = f[son[root][i]]; ans = son[root][i]; } } } } return ans; } int solve(int root){ int u, v; u = bfs(root); v = bfs(u); return f[v]; } int main(){ int i, j, k, n, m; int x1, x2, l, u; int res; while(~scanf("%d%d",&n,&m)){ for(i=0;i<=n;i++){ son[i].clear(); w[i].clear(); } for(i=0;i<m;i++){ scanf("%d%d%d",&x1,&x2,&l); scanf(" %c",&opt); son[x1].push_back(x2);w[x1].push_back(l); son[x2].push_back(x1);w[x2].push_back(l); } res = 0; memset(viss,0,sizeof(vis)); for(i=1;i<=n;i++){ if(viss[i]==0){ res = max(res,solve(i)); } } printf("%d\n",res); } return 0; }
试题编号: | 201503-4 |
试题名称: | 网络延时 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换 机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。
当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多需要多少步。 输入格式
输入的第一行包含两个整数n, m,分别表示交换机的台数和终端电脑的台数。
第二行包含n - 1个整数,分别表示第2、3、……、n台交换机所连接的比自己上一层的交换机的编号。第i台交换机所连接的上一层的交换机编号一定比自己的编号小。 第三行包含m个整数,分别表示第1、2、……、m台终端电脑所连接的交换机的编号。 输出格式
输出一个整数,表示消息传递最多需要的步数。
样例输入
4 2
1 1 3 2 1 样例输出
4
样例说明
样例的网络连接模式如下,其中圆圈表示交换机,方框表示电脑:
其中电脑1与交换机4之间的消息传递花费的时间最长,为4个单位时间。 样例输入
4 4
1 2 2 3 4 4 4 样例输出
4
样例说明
样例的网络连接模式如下:
其中电脑1与电脑4之间的消息传递花费的时间最长,为4个单位时间。 评测用例规模与约定
前30%的评测用例满足:n ≤ 5, m ≤ 5。
前50%的评测用例满足:n ≤ 20, m ≤ 20。 前70%的评测用例满足:n ≤ 100, m ≤ 100。 所有评测用例都满足:1 ≤ n ≤ 10000,1 ≤ m ≤ 10000。 |
试题编号: | 201503-4 |
试题名称: | 网络延时 |
标签:
原文地址:http://www.cnblogs.com/13224ACMer/p/4780050.html