[Ynoi2010] Exponential tree
题目描述
对于给定的 $n,k$,你需要构造一个只含 $0,1$ 的矩阵 $A_{i,j}$,$0\le i,j\le n$,满足:
1. $A_{i,i}=1$
2. $A_{i,i+1}=1$
3. 对 $i>j$ 有 $A_{i,j}=0$
4. 若 $A_{i,j}=1$,$j-i>1$,则存在 $i<t<j$,满足 $A_{i,t}=A_{t,j}=1$
5. 对 $i\le j$ 有 $(A^k)_{i,j}>0$。
你需要输出满足 $A_{i,j}=1$ 且 $j-i>1$ 的每个 $(i,j)$,设这样的 $(i,j)$ 共有 $m$ 个。
若输出不满足要求,则不能得到该测试点的任何分数。若输出满足要求,则根据 $m$ 进行评分。
输入输出格式
输入格式
一行,两个整数 $n,k$。
输出格式
第一行一个整数 $m$,接下来 $m$ 行,每行两个整数 $i,j$,依次表示每个满足 $A_{i,j}=1$ 且 $j-i>1$ 的二元组 $(i,j)$。
输入输出样例
输入样例 #1
3 2
输出样例 #1
1
0 2
说明
对于 $100\%$ 的数据,满足 $1900\le n\le 2000$
$2\le k\le 15$。
| $k$ | $f(n,k)$ |
| ---- | -------- |
| 2 | 7.987 |
| 3 | 3.8085 |
| 4 | 2.396 |
| 5 | 1.961 |
| 6 | 1.6065 |
| 7 | 1.451 |
| 8 | 1.2535 |
| 9 | 1.1975 |
| 10 | 1.099 |
| 11 | 1.07 |
| 12 | 1.034 |
| 13 | 1.0115 |
| 14 | 1.001 |
| 15 | 0.994 |
每个 $2\le k\le 15$ 对应一个总分为 $s(k)$ 的子任务,每个子任务的得分是子任务中每个测试点的得分的最小值。
每个测试点的得分为所在子任务的总分的 $\max\left(0,1-\sqrt{\max\left(0,\frac{m}{n\cdot f(k)}-1\right)}\right)$ 倍。