牛客網 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);
}
}
聯繫郵箱:[email protected]
Github:https://github.com/CurrenWong
歡迎轉載/Star/Fork,有問題歡迎通過郵箱交流。