1、思路

  • 当环形结构中只有一座山峰时,可见山峰对数量为0。当有两座时,可见山峰对数量为1。当有三座时可见山峰对数量为3。可以推导得出当有n座山峰时,可见山峰对数量为2 * n - 3

  • 假设环形结构中有n座山峰,除了最高山峰和次高山峰外还剩下n - 2座山峰,这n - 2座山峰中每一座都能根据小找大的方式找到两对,所以一共有(i - 2) * 2对,再加上最高山峰和次高山峰这对,一共就有2 * n - 3对。

2、代码

#include <iostream>

using namespace std;

int main()
{
    int T;
    cin >> T;

    while (T -- )
    {
        int n, p, m;
        cin >> n >> p >> m;

        cout << max(2 * n - 3, 0) << endl;
    }

    return 0;
}