题目 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;
}
相关推荐
帅次4 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
Hi李耶5 小时前
【LeetCode】9-回文数
算法·leetcode·职场和发展
杨逢昌工厂6S管理1 天前
44-6S 管理回潮问题根治:归位三定闭环法的体系化落地路径|杨逢昌
经验分享·笔记·职场和发展·学习方法
程序员三藏1 天前
自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
卡兹墨1 天前
iOS从打包到上架详细流程
ios·职场和发展·蓝桥杯
tkevinjd1 天前
力扣239-滑动窗口最大值
算法·leetcode·职场和发展
only-qi2 天前
大模型Agent面试攻略:落地工程痛点、评估体系与Agentic RAG核心精讲
人工智能·算法·面试·职场和发展·langchain·rag
数字宝藏2 天前
15本电子书分享
职场和发展·职场发展·教育电商
程序猿乐锅2 天前
【数据结构与算法 | 第七篇】二维数组:力扣48,54,59,151
算法·leetcode·职场和发展