当前位置: 首页 > news >正文

相似度计算 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;
}

 

http://www.dtcms.com/a/99603.html

相关文章:

  • 网络华为HCIA+HCIP ip-prefix,route-policy
  • DBeaver Error : Public Key Retrieval is not allowed
  • 可视化图解算法: 二叉树的前序遍历
  • 算法-前缀和与差分
  • 【hadoop】远程调试环境
  • 用Python打造智能宠物:强化学习的奇妙之旅
  • 计算机三级信息安全部分英文缩写
  • 【MyBatis】MyBatis 操作数据库
  • Windows学习笔记(4)关于MITRE
  • 解决 FFmpeg 使用 C/C++ 接口时,解码没有 shell 快的问题(使用多线程)
  • 用Python实现资本资产定价模型(CAPM)
  • ubuntu 安装mysql
  • Python 中列表(List)、元组(Tuple)、集合(Set)和字典(Dict)四大数据结构的完整对比
  • macOS Jdk1.8安装(目前主流版本的jdk)
  • 【漫话机器学习系列】163.方差膨胀因子(Variance Inflation Factor, VIF)
  • Spring 通过多种方式实现使用线程
  • 在用redis当中可能遇到的问题解决方案以及redis中的一些名词解释
  • HTML 标签类型全面介绍
  • docker-compese 启动mysql8.0.36与phpmyadmin,并使用web连接数据库
  • Reactive编程:数据流和观察者
  • MySQL多表查询实验
  • c++-引用
  • 【STM32】WDG看门狗(学习笔记)
  • 积分赛——串口控制指示灯
  • MySQL排序详解
  • vue3 响应式系统指南
  • 无人机中继传输数据链技术,(无人机+自组网)远距离传输技术实现详解
  • 大唐杯02 DTM.PX4.016
  • 企业级知识库建设:自建与开源产品集成的全景解析 —— 产品经理、CTO 与 CDO 的深度对话
  • Python基础知识第二天:从格式化到流程控制