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; }