luogu#P11475. [COCI 2024/2025 #3] 红蓝牌 / Karte

[COCI 2024/2025 #3] 红蓝牌 / Karte

题目背景

译自 COCI 2024/2025 #3 T2。1s,0.5G\texttt{1s,0.5G}。满分为 7070

题目描述

在 Vito 的桌子上,有 NN 张编号分别为 1N1\sim N 的红牌和 MM 张编号分别为 1M1\sim M 的蓝牌。

将一张红牌和一张蓝牌称为「一对」,给定若干个二元组 (c,p)(c,p)。若一对牌中,红牌编号为 cc,蓝牌编号为 pp,则称这对牌是好对

一个牌堆包含若干张红牌和若干张蓝牌。定义一个牌堆的价值 ww 为牌堆中选出一对,使得这个对是一个好对的方案数。

rr 为牌堆中红牌的数量,bb 为牌堆中蓝牌的数量,定义牌堆的强度 strength\mathrm{strength} 为:

strength=wXrYb\mathrm{strength}=w-X\cdot r-Y\cdot b

其中 XXYY 是给定的常数。

帮助 Vito 确定:选择若干张红牌和蓝牌构成一个牌堆,这个牌堆的最大强度为多少。注意,他也可以一张牌都不选(即构成一个空的牌堆)。

输入格式

第一行,四个非负整数 N,M,X,YN,M,X,Y

接下来 NN 行,每行一个长度为 MM01\texttt{01} 串,其中第 ii 行的字符串中第 jj 位为 11 表示 (i,j)(i,j) 是好的,否则表示不是好的。

输出格式

输出一行一个非负整数,表示可以构成的牌堆的最大强度。

2 2 0 0
11
10
3
3 3 1 0
111
111
000
4
3 3 1 1
111
101
011
1

提示

样例解释

样例 11 中,Vito 可以选择所有的卡牌,能产生 33 个好对,牌堆的最大强度为 33

样例 22 中,Vito 可以选择编号为 1,21,2 的红牌和所有的蓝牌,能产生 66 个好对,牌堆的最大强度为 44(由于选择了两张红牌,所以要将好对数减去 2X=22X=2 作为牌堆的强度)。

数据范围

对于 100%100\% 的数据,保证:

  • 1N,M211\le N,M\le 21
  • 0X,Y300\le X,Y\le 30
  • 输入的字符串中仅包含 0011
子任务编号 特殊性质 得分
11 Y=0Y=0 1818
22 1N,M91\le N,M\le 9 1111
33 1N,M151\le N,M\le 15 2424
44 1717