首页 > 试题广场 >

小红吃药

[编程题]小红吃药
  • 热度指数:136 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红准备买药治病。已知共有n种症状和m种药,第i种药可以治疗一些症状,但可能会导致一些副作用,添加一些新的症状。小红依次服用了一些药,请你告诉小红,当她每次服用一副药时,当前还有多少症状?

输入描述:
第一行输入一个正整数n,代表症状的数量
第二行输入一个长度为n的01串,第i位是'1'代表小红目前有第i个症状,第i位是'0'代表没有该症状。
第三行输入一个正整数m,代表药的数量。
接下来的2*m行,每2行描述一副药:
第一行输入一个长度为n的01串,代表该药能治疗的症状。'1'代表可以治疗,'0'代表不能治疗。
第二行输入一个长度为n的01串,代表该药会产生的副作用。'1'代表会产生该症状,'0'代表不会产生。
接下来的一行,输入一个正整数q,代表小红服用的药数量。
接下来的q行,每行输入一个正整数u,代表小红服用了第u副药。
1\leq n \leq 20
1\leq m,q \leq 10^4
1\leq a_i ,u\leq m

保证每副药副作用产生的症状和该药治疗的症状是不会重复的,即不会存在同一个位置的两个01串都是'1'。


输出描述:
输出q行,每行输入一个正整数,代表当前小红服用药后,身体有多少症状。
示例1

输入

4
0101
3
1100
0010
0101
1000
1001
0000
3
2
3
1

输出

1
0
1

说明

最开始小红有第二个、第四个症状。
开始小红服用了第二副药,治好了这两个症状,但新增了第一个症状。目前症状数量为1。
然后小红服用了第三副药,治好了第一个症状,并没有新增症状。目前症状数量为0。
最后小红服用了第一副药。由于小红没有症状,所以没有治疗,但又新增了第三个症状,目前症状数量为1。
头像 Silencer76
发表于 2025-03-31 18:09:29
题目链接 小红吃药 题目描述 小红准备买药治病。已知共有 种症状和 种药,第 种药可以治疗一些症状,但可能会导致一些副作用,添加一些新的症状。小红依次服用了一些药,请你告诉小红,当她每次服用一副药时,当前还有多少症状? 输入: 第一行输入一个正整数 ,代表症状的数量 第二行输入一个长度为 展开全文
头像 丨阿伟丨
发表于 2025-09-16 17:58:00
题目链接 小红吃药 题目描述 小红有 种可能的症状。她的初始症状由一个长度为 的 01 串表示。现有 种药,每种药有两个属性: 治疗范围:一个长度为 的 01 串,'1' 表示该药可以治疗对应症状。 副作用:一个长度为 的 01 串,'1' 表示服用该药会产生对应症状。 题目保证一种药 展开全文
头像 扎男_
发表于 2025-05-19 19:58:55
//活动地址: 牛客春招刷题训练营 - 编程打卡活动 #include <iostream> #pragma clang diagnostic push #pragma ide diagnostic ignored "cppcoreguidelines-narrowing- 展开全文