牛客网 NC13812 Another Server#
目录#
1. 题目描述#
1.1. Limit#
Time Limit: 1000 ms
Memory Limit: 262144 kB
1.2. Problem Description#
何老师某天在机房里搞事情的时候,发现机房里有n台服务器,从 到 标号,同时有 条网线,从 到 标号,其中第i条网线双向连接着 服务器和号服务器,在一个单位时间内最多能够承受 个单位流量。 显然这些服务器之间要进行信息交换,为了测试服务器的抗压能力,你需要帮何老师计算出 号服务器在一个单位时间内最多能向 号服务器发送多少个单位流量的数据,这里认为数据的传输是瞬间完成的。
1.3. Input#
第一行是一个正整数 ,表示测试数据的组数, 对于每组测试数据, 第一行是一个整数 ,表示服务器的数量, 第二行包含2n-2个以空格分隔的正整数 ,表示网线单位时间内能承受的流量,保证不超过100。
1.4. Output#
对于每组测试数据,输出一个整数,表示 号服务器在一个单位时间内最多能向 号服务器发送的数据量。
1.5. Sample Input#
2
2
1 1
3
1 3 2 4
1.6. Sample Output#
2
4
1.7. Source#
2. 解读#
求每两根线能量之和的最小值,即对 和 两项进行求和 ,求最小值
3. 代码#
#include <iostream>
#include <string.h>
using namespace std;
const int NUM = 1e3 + 1;
// 存储
long long list[NUM];
int main()
{
// test case
int t, n;
scanf("%d", &t);
// 每两根线能量之和的最小值
long long minSum;
// test case
for (int i = 0; i < t; i++) {
// 机器数量
scanf("%d", &n);
// 初始化
memset(list, 0, sizeof(list));
// 输入
for (int j = 0; j < 2 * n - 2; j++) {
scanf("%lld", &list[j]);
}
// 计算
// 初始化
minSum = list[0] + list[1];
// 求每两根线能量之和的最小值
for (int i = 1; i < n - 1; i++) {
minSum = min(minSum, list[2 * i] + list[2 * i + 1]);
}
// 输出
printf("%lld\n", minSum);
}
}
联系邮箱:curren_wong@163.com
Github:https://github.com/CurrenWong
欢迎转载/Star/Fork,有问题欢迎通过邮箱交流。