牛客網 NC13812 Another Server 簡單題

牛客網 NC13812 Another Server

目錄

1. 題目描述

1.1. Limit

Time Limit: 1000 ms

Memory Limit: 262144 kB

1.2. Problem Description

何老師某天在機房裏搞事情的時候,發現機房裏有n臺服務器,從 11nn 標號,同時有 2n22n-2 條網線,從 112n22n-2 標號,其中第i條網線雙向連接着 服務器和號服務器,在一個單位時間內最多能夠承受 xix_i 個單位流量。 顯然這些服務器之間要進行信息交換,爲了測試服務器的抗壓能力,你需要幫何老師計算出 11 號服務器在一個單位時間內最多能向 nn 號服務器發送多少個單位流量的數據,這裏認爲數據的傳輸是瞬間完成的。


1.3. Input

第一行是一個正整數 T(1000)T(\le 1000),表示測試數據的組數, 對於每組測試數據, 第一行是一個整數 n(2n100)n(2 \le n \le 100),表示服務器的數量, 第二行包含2n-2個以空格分隔的正整數 x1,x2,...,x2n2x_1,x_2,...,x_{2n-2},表示網線單位時間內能承受的流量,保證不超過100。


1.4. Output

對於每組測試數據,輸出一個整數,表示 11 號服務器在一個單位時間內最多能向 nn 號服務器發送的數據量。


1.5. Sample Input

2
2
1 1
3
1 3 2 4

1.6. Sample Output

2
4

1.7. Source

牛客網 NC13812 Another Server


2. 解讀

求每兩根線能量之和的最小值,即對 2n2n2n12n-1 兩項進行求和 sumnsum_n,求最小值 minsumn\min sum_n

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,有問題歡迎通過郵箱交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章