最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • Dungeon

    正文概述 陈老师   2026-01-20 15:14:49  

    题目描述

    你现在位于一座地下城中,拥有 nn 把剑,面前有 mm 个怪物。

    ii 把剑的攻击力为 aia_i,第 ii 个怪物的生命值为 bib_i。 若一把攻击力为 xx 的剑满足:

    xbix \ge b_i

    则可以击杀该怪物。

    当你使用一把攻击力为 xx 的剑击杀第 ii 个怪物后,该剑会消失。随后:

    • ci>0c_i > 0,你将获得一把新的剑,其攻击力为:

    max(x,ci)max(x, c_i)

    • ci=0c_i = 0,则不会获得新的剑。

    你最多只能击杀每个怪物一次。 请计算你 最多可以击杀多少个怪物


    输入格式

    输入包含多组测试数据。

    第一行输入一个整数 TT

    1T1041 \le T \le 10^4

    表示测试次数。

    接下来每组测试包含:

    • 第一行输入两个整数 n,mn, m

    1n,m21051 \le n, m \le 2 \cdot 10^5

    • 第二行输入 nn 个整数:

    a1,a2,,ana_1, a_2, \dots, a_n,满足 1ai1091 \le a_i \le 10^9

    • 第三行输入 mm 个整数:

    b1,b2,,bmb_1, b_2, \dots, b_m,满足 1bi1091 \le b_i \le 10^9

    • 第四行输入 mm 个整数:

    c1,c2,,cmc_1, c_2, \dots, c_m,满足 0ci1090 \le c_i \le 10^9

    保证所有测试中:

    n2105,m2105\sum n \le 2 \cdot 10^5, \sum m \le 2 \cdot 10^5


    输出格式

    对于每组测试,输出一个整数,表示最多可以击杀的怪物数量。


    样例

    5
    3 2
    2 2 2
    2 3
    3 2
    2 3
    2 3
    2 3 4
    0 0 0
    3 5
    1 7 7
    6 6 2 2 2
    2 0 0 7 2
    4 4
    1 5 3 5
    7 4 6 5
    0 0 1 6
    2 2
    1 1000000000
    1000000000 1
    1000000000 0
    

    2
    2
    5
    3
    2
    

    样例解释

    • 样例 1: 使用攻击力 22 的剑击杀第 1 个怪物,可获得攻击力 max(2,3)=3max(2,3)=3 的新剑,再用该剑击杀血量为 33 的怪物,共击杀 2 个。

    • 样例 2: 所有 ci=0c_i = 0,击杀怪物后不会生成新剑,只能用已有的剑击杀两个怪物。

    • 样例 3: 通过合适的选择剑与怪物顺序,可击杀最多 5 个怪物。

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » Dungeon