📜  门| Gate IT 2007 |问题21(1)

📅  最后修改于: 2023-12-03 15:28:40.477000             🧑  作者: Mango

门| Gate IT 2007 |问题21

问题描述

门电路一般是由与门,或门,非门等基本门电路组成的。现定义与门数为i,或门数为j,非门数为k,则门电路能承受的最大延迟t的公式为:t=1.2i + 0.8j + 0.6k。

现有n种基本门电路,在满足门电路最大延迟不超过t的情况下,最多可以使用多少个基本门电路?

输入格式

输入的第一行包含三个整数i,j,k,表示一个门电路由i个与门,j个或门,k个非门组成。

第二行包含一个整数n,表示基本门电路的种数。

接下来n行,每行包含三个整数a,b,c,表示该种基本门电路包含a个与门,b个或门,c个非门。

输出格式

输出一个整数,表示最多可以使用多少种基本门电路。

数据范围

0 ≤ i, j, k ≤ 100 1 ≤ n ≤ 100 0 ≤ a, b, c ≤ 100

示例

输入示例1:

2 1 1
5
1 1 1
1 1 0
1 0 1
0 1 1
0 0 1

输出示例1:

3

输入示例2:

2 2 2
5
1 1 1
1 1 0
1 0 1
0 1 1
0 0 1

输出示例2:

2
题解

这是一道组合问题,可以用暴力枚举或者动态规划解决。

暴力枚举的思路是从n个基本门电路中选出若干个,计算延迟是否在限制范围内。时间复杂度为O(2^n * n)。

动态规划的思路是先将n个基本门电路按照延迟时间从小到大排序,然后对于每个基本门电路,记录延迟不超过t时能使用的最多的基本门电路种数。时间复杂度为O(n * t)。

由于本题数据范围较小,因此暴力枚举也可以通过本题。

代码示例: