P15266 「UTOI 1A」sp! dusttale
题目描述
给定两个整数 $n,m$,你需要构造两个长度为 $n$ 的排列 $p, q$。
你需要保证构造的每个序列恰有 $m$ 个“峰”与 $m$ 个“谷”,“峰”与“谷”的定义如下:
- 称一个排列 $a$ 中的 $i$ 位置为“峰”,当且仅当满足:$1
输入格式
第一行一个整数 $T$,表示测试数据组数。
接下来 $T$ 行,每行两个整数 $n, m$。
输出格式
对于每组测试数据,输出一行一个整数:
- 若无法构造出符合要求的 $p, q$ 输出 $-1$。
- 否则输出 $\displaystyle \max_{i=1}^{n} (p_i + q_i)$ 的最小值。
说明/提示
**【样例解释】**
对于第 $1$ 组测试数据:
- 可以构造出 $p=[1,3,2,4]$,$q=[4,2,3,1]$。
- $p$ 的“峰”为 $2$ 位置,“谷”为 $3$ 位置。
- $q$ 的“峰”为 $3$ 位置,“谷”为 $2$ 位置。
- $\displaystyle \max_{i=1}^{n} (p_i + q_i) = \max(\{1+4,\ 3+2,\ 2+3,\ 4+1\})=5$。
可以证明,不存在排列 $p,q$ 使得 $\displaystyle \max_{i=1}^{n} (p_i+q_i)$ 的值小于 $5$,因此输出 $5$。
对于第 $3$ 组测试数据:可以证明无法构造出符合要求的排列,因此输出 $-1$。
**【数据范围与约束】**
对于 $20\%$ 的测试点,保证 $n \le 10$,$T \le 3$。
对于 $50\%$ 的测试点,保证 $n \le 10^5$,$T\le 10$。
对于额外 $10\%$ 的测试点,保证 $m > n$。
对于 $100 \%$ 的测试点,保证 $1\le T\le 10^4$,$1\le n,m \le 10^9$。