题目 3314: 蓝桥杯2025年第十六届省赛真题-魔法科考试

题目 3314: 蓝桥杯2025年第十六届省赛真题-魔法科考试

时间限制: 3s 内存限制: 512MB 提交: 245 解决: 49

题目描述

小明正在参加魔法科的期末考试,考生需要根据给定的口诀组合出有效的 魔法。其中,老师给定了 n 个上半部分口诀 a1, a2, . . . , an 和 m 个下半部分口诀 b1, b2, . . . , bm,均用整数表示。完整的口诀包含一个上半部分口诀和一个下半部 分口诀,当选用两个口诀 ai 和 bj,将组合出完整口诀 S = ai + bj。

当 S 满足 S ≤ n + m 且 S 为质数时,魔法是有效的。魔法的种类只和 S 的 大小有关。如果每个上半部分口诀和每个下半部分口诀在不同的组合中可以重 复使用,小明想知道一共可能组合出多少种不同的有效魔法?

输入格式

输入共三行。

第一行为两个正整数 n, m。

第二行为 n 个由空格分开的正整数 a1, a2, . . . , an。

第三行为 m 个由空格分开的正整数 b1, b2, . . . , bm。

输出格式

输出共 1 行,一个整数表示答案。

样例输入复制

3 4

2 3 10

3 4 5 1

样例输出复制

3

提示

【样例说明】

可以组合出 3、5、7 这三个有效魔法。

【评测用例规模与约定】

对于 20% 的评测用例,n, m ≤ 200。

对于 60% 的评测用例,n, m ≤ 2000。

对于 100% 的评测用例,n, m ≤ 20000,ai , bi ≤ 20000。

1.分析

预处理出所有的质数并标记。

遇到和为质数并且在范围内取消标记并计数。

两个数组排序更好处理。

2.代码

cpp 复制代码
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAX = 1e5;
typedef long long LL;
int n,m,a[MAX],b[MAX],re[MAX],num;
bool check(int x) {
    if (x < 2) return false;
    for (int i = 2; i <= x / i; i++) {
        if (x % i == 0) return false;
    }
    return true;
}
int main() {
    for (int i = 2; i <= 40010; i++) {
        if (check(i)) re[i] = 1;
    }
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 0; i < m; i++) {
        cin >> b[i];
    }
    sort(a, a + n);
    sort(b, b + m);
    for (int i = 0; i < n; i++) {
        for (int j = 0; a[i] + b[j] <= n+m&&j<m; j++) {
            if (re[a[i] + b[j]]==1) {
                re[a[i] + b[j]] = 0;
                num++;
            }
        }
    }
    cout << num << endl;
    return 0;
}
相关推荐
aaaweiaaaaaa18 小时前
c++基础学习(学习蓝桥杯 ros2有C基础可看)
c++·学习·蓝桥杯·lambda·ros2·智能指针·c++类
汉克老师19 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
007php00720 小时前
某大厂MySQL面试之SQL注入触点发现与SQLMap测试
数据库·python·sql·mysql·面试·职场和发展·golang
JosieBook2 天前
【程序人生】有梦想就能了不起,就怕你没梦想
程序人生·职场和发展
scx201310042 天前
P13929 [蓝桥杯 2022 省 Java B] 山 题解
c++·算法·蓝桥杯·洛谷
data myth2 天前
力扣1210. 穿过迷宫的最少移动次数 详解
算法·leetcode·职场和发展
Greedy Alg2 天前
LeetCode 240. 搜索二维矩阵 II
算法·leetcode·职场和发展
墨染点香2 天前
LeetCode 刷题【68. 文本左右对齐】
算法·leetcode·职场和发展
GalaxyPokemon2 天前
LeetCode - 202. 快乐数
算法·leetcode·职场和发展