#P6020. [Ynoi2010] Exponential tree

[Ynoi2010] Exponential tree

题目描述

对于给定的 n,kn,k,你需要构造一个只含 0,10,1 的矩阵 Ai,jA_{i,j}0i,jn0\le i,j\le n,满足:

  1. Ai,i=1A_{i,i}=1
  2. Ai,i+1=1A_{i,i+1}=1
  3. i>ji>jAi,j=0A_{i,j}=0
  4. Ai,j=1A_{i,j}=1ji>1j-i>1,则存在 i<t<ji<t<j,满足 Ai,t=At,j=1A_{i,t}=A_{t,j}=1
  5. iji\le j(Ak)i,j>0(A^k)_{i,j}>0

你需要输出满足 Ai,j=1A_{i,j}=1ji>1j-i>1 的每个 (i,j)(i,j),设这样的 (i,j)(i,j) 共有 mm 个。

若输出不满足要求,则不能得到该测试点的任何分数。若输出满足要求,则根据 mm 进行评分。

输入格式

一行,两个整数 n,kn,k

输出格式

第一行一个整数 mm,接下来 mm 行,每行两个整数 i,ji,j,依次表示每个满足 Ai,j=1A_{i,j}=1ji>1j-i>1 的二元组 (i,j)(i,j)

3 2
1
0 2

提示

对于 100%100\% 的数据,满足 1900n20001900\le n\le 2000 2k152\le k\le 15

kk f(n,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

每个 2k152\le k\le 15 对应一个总分为 s(k)s(k) 的子任务,每个子任务的得分是子任务中每个测试点的得分的最小值。

每个测试点的得分为所在子任务的总分的 $\max\left(0,1-\sqrt{\max\left(0,\frac{m}{n\cdot f(k)}-1\right)}\right)$ 倍。