#P15438. [蓝桥杯 2025 国 Python B] 刻痕

    ID: 15373 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>2025组合数学容斥原理蓝桥杯国赛

[蓝桥杯 2025 国 Python B] 刻痕

说明

小蓝在旅游时看到了景点里有一块石头。这块石头承载了一个传说。

传说在很久以前有一对爱人在战乱时期分散,历经苦难在几年后重逢,为了纪念这段经历,他们在一块石头上留下了两道刻痕。每一道刻痕都是水平或垂直于地面的线段(注意刻痕可能长度为 11),刻痕长度为正整数。

经过了多年的风化,这块石头已经变得坑坑洼洼,没法再判断当年的两道刻痕的位置,但小蓝从导游那里得知,当年的两道刻痕并不相交,两条刻痕的线段不存在公共点(包括端点)。

小蓝现在希望知道,两道刻痕的位置有多少种不同的可能。特别地:

  • 当刻痕长度为 11 时,不区分水平和垂直方向,同一位置 (x,y)(x, y) 的刻痕仅算 11 种可能;
  • 两道刻痕的顺序不同视为不同的可能(例如刻痕 A 在前、刻痕 B 在后,与刻痕 B 在前、刻痕 A 在后视为两种不同情况)。

本题中,石头用一个 n×mn \times m0101 矩阵来表示,若一个位置为 00 则表示它不能为刻痕占据的位置,为 11 则表示它可能是刻痕占据的位置。一条刻痕对应矩阵中宽为 11 的水平或垂直的线段,且在矩阵中的对应位置必须全部为 11:水平刻痕的同一行中,起点到终点之间(包括端点)位置上的值在矩阵中均为 11;垂直刻痕的同一列中,起点到终点之间(包括端点)位置上的值在矩阵中均为 11

输入格式

输入的第一行包含两个正整数 n,mn, m,用一个空格分隔,表示石头的大小。

接下来 nn 行,每行包含一个长度为 mm 的 01 串。

输出格式

输出一行包含一个整数表示答案,即两道刻痕所在的位置有多少种不同的可能。

1 2
11
2
2 2
11
11
32

提示

样例说明 1

总共有两种可能。

第一种可能:第一条刻痕占据第 1 行第 1 列,长度为 1,无法分辨是水平还是垂直。第二条刻痕占据第 1 行第 2 列,长度为 1,无法分辨是水平还是垂直。

第二种可能:第一条刻痕占据第 1 行第 2 列,长度为 1,无法分辨是水平还是垂直。第二条刻痕占据第 1 行第 1 列,长度为 1,无法分辨是水平还是垂直。

评测用例规模与约定

对于 30%30\% 的评测用例,n,m50n, m \le 50

对于 60%60\% 的评测用例,n,m300n, m \le 300

对于所有评测用例,1n,m30001 \le n, m \le 3000