[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)$ 倍。