1622_软件补丁

2022-5-16 18:17| 发布者: Hocassian| 查看: 64| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-8950450435500-Problem List-采集的数据-后羿采集器.html

Pro.ID

1622

Title

软件补丁

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1622

AC

2

Submit

3

Ratio

66.67%

时间&空间限制

  • Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 262144/262144 K (Java/Others)
  • 描述

    某公司发现其研制的一个软件中有 n 个错误,随即为该软件发放了一批共 m 个补丁程序。每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些错误时才可以使用。一个补丁在排除某些错误的同时,往往会加入另一些错误。

    换句话说,对于每一个补丁 i ,都有 2 个与之相应的错误集合 B1(i)和 B2(i) ,使得仅当软件包含 B1(i) 中的所有错误,而不包含 B2(i) 中的任何错误时,才可以使用补丁 i 。补丁 i 将修复软件中的某些错误 F1(i) ,而同时加入另一些错误 F2(i) 。另外,每个补丁都耗费一定的时间。

    试设计一个算法,利用公司提供的 m 个补丁程序将原软件修复成一个没有错误的软件,并使修复后的软件耗时最少。

    输入

    第 1 行有 2 个正整数 nm ( 1 ≤ n ≤ 20 , 1 ≤ m ≤ 100 ),n 表示错误总数,m 表示补丁总数。

    接下来 m 行给出了 m 个补丁的信息。每行包括一个正整数,表示运行补丁程序 i 所需时间,以及 2 个长度为 n 的字符串,中间用一个空格符隔开。

    第 1 个字符串中,如果第 k 个字符 bk 为 +,则表示第 k 个错误属于 B1(i) 。若为 -,则表示第 k 个错误属于 B2(i) ,若为 0,则第 k 个错误既不属于 B1(i) 也不属于 B2(i) ,即软件中是否包含第 k 个错误并不影响补丁 i 的可用性。

    第 2 个字符串中,如果第 k 个字符 bk 为 -,则表示第 k 个错误属于 F1(i) ,若为 +,则表示第 k 个错误属于 F2(i) ,若为 0,则第 k 个错误既不属于 F2(i) 也不属于 F2(i),即软件中是否包含第 k 个错误不会因使用补丁 i 而改变。

    输出

    Description

    某公司发现其研制的一个软件中有 n 个错误,随即为该软件发放了一批共 m 个补丁程序。每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些错误时才可以使用。一个补丁在排除某些错误的同时,往往会加入另一些错误。

    换句话说,对于每一个补丁 i ,都有 2 个与之相应的错误集合 B1(i)和 B2(i) ,使得仅当软件包含 B1(i) 中的所有错误,而不包含 B2(i) 中的任何错误时,才可以使用补丁 i 。补丁 i 将修复软件中的某些错误 F1(i) ,而同时加入另一些错误 F2(i) 。另外,每个补丁都耗费一定的时间。

    试设计一个算法,利用公司提供的 m 个补丁程序将原软件修复成一个没有错误的软件,并使修复后的软件耗时最少。

    Input

    第 1 行有 2 个正整数 nm ( 1 ≤ n ≤ 20 , 1 ≤ m ≤ 100 ),n 表示错误总数,m 表示补丁总数。

    接下来 m 行给出了 m 个补丁的信息。每行包括一个正整数,表示运行补丁程序 i 所需时间,以及 2 个长度为 n 的字符串,中间用一个空格符隔开。

    第 1 个字符串中,如果第 k 个字符 bk 为 +,则表示第 k 个错误属于 B1(i) 。若为 -,则表示第 k 个错误属于 B2(i) ,若为 0,则第 k 个错误既不属于 B1(i) 也不属于 B2(i) ,即软件中是否包含第 k 个错误并不影响补丁 i 的可用性。

    第 2 个字符串中,如果第 k 个字符 bk 为 -,则表示第 k 个错误属于 F1(i) ,若为 +,则表示第 k 个错误属于 F2(i) ,若为 0,则第 k 个错误既不属于 F2(i) 也不属于 F2(i),即软件中是否包含第 k 个错误不会因使用补丁 i 而改变。

    Output

    输出最小耗时,如果问题无解,则输出 0 。

    Sample Input

    3 3
    1 000 00-
    1 00- 0-+
    2 0-- -++

    Sample Output

    8

    Source

    样例输入

    3 3
    1 000 00-
    1 00- 0-+
    2 0-- -++

    样例输出

    8

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部