#P14278. [ROI 2014 Day2] 健康饮食

    ID: 16067 远端评测题 2000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>动态规划 DP2014树状数组ROI(俄罗斯)

[ROI 2014 Day2] 健康饮食

题目背景

译自 ROI 2014 Day2 T3. Здоровое питание

题目描述

某大学的学生城规划为一个 n×nn \times n 的正方形网格,每个格子里都有一栋建筑。如果两栋建筑位于有公共边的相邻格子中,它们之间就有一条连通的通道。在正方形的左上角是学生宿舍,在右下角是教学楼。每栋建筑中(包括宿舍与教学楼)都设有一台自动售货机,每台售货机只出售一种食品,例如:仅售咖啡,或仅售肉馅饼等。学生每天都会从宿舍出发,沿着通道前往教学楼,并选择一条最短路径

校方希望研究学生在行进过程中购买食品的多样性。对于每一台售货机 Ai,jA_{i,j},希望找到一条经过该售货机的最短路径,并且该路径上与 Ai,jA_{i,j} 出售相同食品的售货机数量尽可能多。该数量称为售货机 Ai,jA_{i,j}冗余度。已知售货机 A1,1A_{1,1} 位于宿舍内,而 An,nA_{n,n} 位于教学楼内。

请编写程序,根据各售货机所售食品的信息,统计冗余度为 1,2,,2n11, 2, \ldots, 2n - 1 的售货机各有多少台。

输入格式

第一行包含一个整数 nn2n15002 \leqslant n \leqslant 1500)。

接下来的 nn 行,每行包含 nn 个整数。第 ii 行第 jj 个数表示售货机 Ai,jA_{i,j} 所售食品的编号。食品编号的取值范围为 11n2n^2

输出格式

输出共 (2n1)(2n - 1) 个整数,第 kk 个数表示冗余度等于 kk 的售货机数量(k=1,2,,2n1k = 1, 2, \ldots, 2n - 1)。

3
1 1 1
2 2 2
3 3 3
0
0
9
0
0
5
1 4 1 3 5
2 1 4 1 2
5 1 1 4 5
3 5 1 1 2
4 3 5 1 1
2
4
9
0
0 
1
1
8
0

提示

本题共 50 个测试,每个测试独立计分,每个测试 2 分。测试中使用的 nn 值如下表所示:

测试编号 nn 测试编号 nn 测试编号 nn 测试编号 nn 测试编号 nn
1 2 11 50 21 200 31 550 41 1050
2 4 12 60 22 225 32 600 42 1100
3 6 13 70 23 250 33 650 43 1150
4 8 14 80 24 275 34 700 44 1200
5 10 15 90 25 300 35 750 45 1250
6 15 16 100 26 325 36 800 46 1300
7 20 17 120 27 350 37 850 47 1350
8 25 18 140 28 400 38 900 48 1400
9 30 19 160 29 450 39 950 49 1450
10 40 20 180 30 500 40 1000 50 1500