相似度计算 ccf-csp 2024-2-2

复制代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    // 定义两个变量 n 和 m,分别用于存储两篇文章的单词个数
    int n, m;
    // 从标准输入读取 n 和 m 的值
    cin >> n >> m;
    // 定义三个 map 容器,A 用于存储并集,T 用于标记第一篇文章中的单词,B 用于存储交集
    map<string, int>A, T, B;
    // 循环读取第一篇文章的 n 个单词
    for (int i = 0; i < n; i++) {
        // 定义一个字符串变量 t 用于存储当前读取的单词
        string t;
        // 从标准输入读取一个单词到 t
        cin >> t;
        // 遍历单词 t 的每个字符
        for (int j = 0; j < t.length(); j++) {
            // 如果字符是大写字母
            if (t[j] >= 'A' && t[j] <= 'Z') {
                // 将大写字母转换为小写字母
                t[j] = t[j] - 'A' + 'a';
            }
        }
        // 将转换后的单词 t 加入到集合 A 中,标记为存在
        A[t] = 1;
        // 将转换后的单词 t 加入到集合 T 中,标记为第一篇文章中的单词
        T[t] = 2;
    }
    // 循环读取第二篇文章的 m 个单词
    for (int i = 0; i < m; i++) {
        // 定义一个字符串变量 t 用于存储当前读取的单词
        string t;
        // 从标准输入读取一个单词到 t
        cin >> t;
        // 遍历单词 t 的每个字符
        for (int j = 0; j < t.length(); j++) {
            // 如果字符是大写字母
            if (t[j] >= 'A' && t[j] <= 'Z') {
                // 将大写字母转换为小写字母
                t[j] = t[j] - 'A' + 'a';
            }
        }
        // 如果该单词在第一篇文章中出现过
        if (T[t]) {
            // 将该单词加入到交集集合 B 中
            B[t] = 3;
        }
        // 将该单词加入到并集集合 A 中
        A[t] = 1;
    }
    // 输出交集集合 B 的大小,即同时出现在两篇文章中的不同单词的个数
    cout << B.size() << endl;
    // 输出并集集合 A 的大小,即两篇文章一共包含的不同单词的个数
    cout << A.size() << endl;

    return 0;
}
相关推荐
科技林总4 分钟前
提示词测评落地全流程
人工智能·算法
Chester_199916 分钟前
CSP202206C.角色授权
开发语言·数据结构·c++·蓝桥杯
艾莉丝努力练剑19 分钟前
【AI大模型接入SDK】WebSocket & SSE 协议
网络·c++·websocket·网络协议·学习·面试
码匠许师傅19 分钟前
【设计模式精讲】6.抽象工厂(Abstract Factory)
c++·设计模式
GKxx22 分钟前
在 HarmonyOS 上从源码构建 GCC 16(gcc/g++ + libstdc++ + libsanitizer):完整记录
c++·华为·harmonyos·鸿蒙·gcc
晴天的雨.99223 分钟前
类和对象下(内部类,匿名对象,对象拷贝时的编译器优化)
开发语言·c++·算法
旖旎夜光42 分钟前
LeetCode 238:除自身以外数组的乘积(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
一条大祥脚1 小时前
26杭电暑期第八场(后半)快读|快写|tarjan|路径DP|mex转化|扫描线|前缀和|二分图
数据结构·算法·tarjan·杭电多校·强联通分量·动态规划dp
奈斯先生Vector1 小时前
从“能调用”到“可运营”:AI Agent 进入多模型时代后的架构升级
java·javascript·数据库·人工智能·算法·架构·aigc
Escalating_xu1 小时前
【C++类和对象(上)】从类的定义、封装与对象模型到内存对齐和 this 指针
开发语言·前端·c++