站外题求条
  • 板块灌水区
  • 楼主void_sans
  • 当前回复22
  • 已保存回复22
  • 发布时间2024/12/28 18:50
  • 上次更新2024/12/28 21:58:43
查看原帖
站外题求条
1558094
void_sans楼主2024/12/28 18:50

题目描述 小M在玩游戏王,他正在学习连接召唤的相关规则。

连接召唤的本质可以简单地理解成,根据连接怪兽的link值(卡面右下角的数字),提供总量为对应数量的怪兽作为素材进行特殊召唤的一种方式。特别的,如果有连接怪兽被作为素材,它可以被视作一个普通素材,也可以被视为数量和自己的link值相同的素材怪兽。

举个例子,要召唤一只 LINK-4 的怪兽,素材可以是场上的任意 4 只怪兽( 1+1+1+1=4),或者 2 只 LINK-2 怪兽( 2+2=4),或者 1 只 LINK-3 怪兽以及 1 只 LINK-2 怪兽( 3+1=4,其中 LINK-2 怪兽被作为普通素材)。

现在小M想知道,使用当前场上的怪兽作为素材,有哪些连接怪兽可以被召唤(不会真的消耗素材去召唤)?

输入格式
本题包含多组测试数据。

输入的第一行包含一个正整数 T,表示测试数据的组数。

每组数据第一行两个正整数 n,m,分别表示当前场上的怪兽和准备被召唤的怪兽。

第二行 n 个正整数 a 1 ​ ,a 2 ​ ,…,a n ​ ,表示场上怪兽的link值。

第三行 m 个正整数 b 1 ​ ,b 2 ​ ,…,b m ​ ,表示被召唤怪兽的link值。

输出格式
每组数据输出 m 行,对于每组数据的第 i 行,如果第 i 只怪兽可以被召唤,输出 YES,否则输出 NO

input1
复制代码
1
6 3
8 3 12 7 9 7
24 50 13
output1
复制代码
YES
NO
YES
数据范围
对于
100% 的数据,保证
1⩽T⩽5, 1⩽n,m⩽10的3次方 , 1⩽a i ​ ,b i ​ ⩽10 的5次方 。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    int T;
    cin >> T;
    while (T--) 
    {
        int n, m;
        cin >> n >> m;
        vector<int> a(n);
        vector<int> b(m);
        for (int i = 0; i < n; i++)
            cin >> a[i];
        for (int i = 0; i < m; i++)
            cin >> b[i];
        int sum = 0;
        for (int i = 0; i < n; i++)
            sum += a[i];
        for (int i = 0; i < m; i++)
         {
            if (b[i] <= sum)
                cout << "YES" << endl; 
            else 
                cout << "NO" << endl;
        }
    }
    return 0;
}
2024/12/28 18:50
加载中...