luogu#P11409. 西湖有雅座
西湖有雅座
题目背景
江湖路上走走停停,翻开年少漂泊的回忆。 如今走过这世间,万般留恋,风吹起了从前 。
题目描述
孙亦谐准备建西湖雅座来开饭馆。
他有 个零件,零件的大小均为 。零件从 编号。
对于一个大小为 的零件,其可视为一个 行 列的矩阵 。若用 来表示这个矩阵中第 行第 列的元素。对于 ,都有 。
则编号为 的零件的面积为: $S\left(i\right) = \sum_{i = 1}^{h}\sum_{j = 1}^{w}a_{i,j} $。
若编号为 和 的两个零件的分别表示为矩阵 和 ,其在同一座楼的稳固程度可表示为:
$$f\left(l,r\right) = \sum_{i = 1}^{h} \sum_{j = 1}^{w} \left [ (a_{i,j} = 1) \text{ and } (b_{i,j} = 1) \right ] $$孙亦谐需要将这 个零件先选取若干个按照任意顺序排列搭成大楼,然后把剩余的零件搭成小楼。若没有剩余零件,则可以不搭小楼。
设 表示某座楼选取的零件编号的集合,则这座楼能成功搭建的条件是:
$$\forall i,j \in U,f\left (i,j\right) \ge \lceil \frac{ \min \left ( S\left(i \right),S\left(j\right) \right) }{2}\rceil $$孙亦谐想知道在保证两座楼能成功搭建的条件下,让大楼使用的零件数尽量多。若无法成功搭建,则直接输出 -1
。
输入格式
第一行输入包含三个正整数 ,分别表示零件的个数、零件的行数、零件的列数。
接下来输入 个零件所表示的矩阵。
对于每个零件的矩阵 ,输入的格式如下:
共输入 行,每行 个元素。
第 行第 列的元素 ,表示这个矩阵中第 行第 列的元素。
输出格式
输出一个整数,表示在搭建成功的情况下,大楼最多能使用多少个零件。若无法成功搭建,则直接输出 -1
。
3 2 2
0 1
1 1
1 0
0 0
0 1
0 1
2
3 2 2
0 1
1 0
0 0
0 1
1 0
0 0
-1
提示
【样例1解释】
可以证明最优方案是用第一个零件和第三个零件搭大楼,用第二个零件搭小楼。
【数据范围】
本题采用捆绑测试。
- Subtask 1(30 points):。
- Subtask 2(5 points):。
- Subtask 3(65 points):无特殊限制。
对于所有测试数据,,。