解题思路

每个文件内的单词存放到单独的一个 set 中。询问时直接遍历其中一个 set(必须是 size 较小的那个,否则会超时在最后一个测试点),用 count() 查找另一个 set 中存不存在这个单词即可。做法类似 PAT 上另一道题目「集合相似度」(连示例输出都几乎是一样的)。

参考代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include <string>
using namespace std;int main(int argc, char const *argv[]) {int n, m, a, b;char s[2000], tmp[2000];set<string> st[101];scanf("%d%*c", &n);for(int i=1; i<=n; ++i) {while(gets(s)) {if(!strcmp(s, "#")) break;int last = 0;for(int j=0; s[j]; ++j) {if(s[j]>='A' && s[j]<='Z') s[j] += 32;// 分割单词,符合要求的存进 setif(s[j]<'a' || s[j]>'z') {s[j] = 0;strcpy(tmp, s+last);last = j+1;tmp[10] = 0;if(strlen(tmp) >= 3) st[i].insert(tmp);}}strcpy(tmp, s+last);tmp[10] = 0;if(strlen(tmp) >= 3) st[i].insert(tmp);}}scanf("%d", &m);while(m--) {scanf("%d %d", &a, &b);int cnt = 0;set<string>::iterator it;// !important: 遍历 size 较小的 setif(st[a].size() > st[b].size()) swap(a, b);for(it=st[a].begin(); it!=st[a].end(); ++it) {if(st[b].count(*it)) cnt++;}printf("%.1f%%\n", 100.0*cnt/(st[a].size()+st[b].size()-cnt));}return 0;
}

PAT 基于词频的文件相似度 (set) -- 解题报告相关推荐

  1. 7-44 基于词频的文件相似度 (30 分)(思路加详解+set容器简便做法)兄弟们冲呀呀呀呀呀 今天你AC了吗

    一:题目 实现一种简单原始的文件相似度计算,即以两文件的公共词汇占总词汇的比例来定义相似度.为简化问题,这里不考虑中文(因为分词太难了),只考虑长度不小于3.且不超过10的英文单词,长度超过10的只考 ...

  2. 基于词频的文本相似度

    基于词频的文本相似度 文本 分词 统计词频 词频向量 相似度计算 应用 项目源码: https://github.com/zhang2172268/mygit/tree/master/textSimi ...

  3. java 知网 语义 相似度,基于知网语义相似度的中文文本分类研究 论文笔记

    基于知网语义相似度的中文文本分类研究 1.传统的文本处理大部分是根据词频和逆向文档频率将文本表示成向量空间模型,实践证明这种模型确实简单高效并且得到了广泛应用,但这种模型表示缺乏对语义的理解,忽略了词 ...

  4. java全景图片切割 全景,基于Three.js实现360度全景图片

    Three.js 是一款运行在浏览器中的3D引擎, 处理三维效果.在一些相机的官网首页中,经常有一张图在旋转,图上面悬浮着文字.这种效果是如何做出来的呢?先看效果,再讲解. 1).建立一个java w ...

  5. 基于Three.js的360度全景图片

    Three.js 是一款运行在浏览器中的 3D 引擎, 处理三维效果.在一些相机的官网首页中,经常有一张图在旋转,图上面悬浮着文字.这种效果是如何做出来的呢?先看效果,再讲解. 1).建立一个java ...

  6. c语言开发五轴后处理,「数控干货」基于UG CLS文件使用 C 语言制作智能后处理工具...

    原标题:「数控干货」基于UG CLS文件使用 C 语言制作智能后处理工具 1 前言 UG 后处理操作是 UGCAM 数控加工工作中一个重要环节,主要任务是把在 UG 加工环境下生成的加工刀位文件转换成 ...

  7. 基于php下载文件的详解

    基于php下载文件的详解 本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下 php下载文件,比如txt文件. 出现的效果就是,弹出浏览器自带的下载框,出现另存为操作.有时候会出现内存溢 ...

  8. scp 命令 路径_基于SSH的文件传输:scp命令

    日常开发中,经常需要在服务器和本地之间进行文件传输.这里来介绍一种基于SSH的文件传输方法--scp命令 命令格式 scp(secure copy,remote file copy program), ...

  9. 2018-3-5 (论文—网络评论中结构化信息处理的应用于研究)笔记三(互信息,信息增益,期望交叉熵,基于词频的方法,CHI统计)

    传统的特征提取的方法: 1.互信息量(Mutual Information MI):评估零个随机变量相关程度(数组额上离散使用了累加,而连续是积分) 百度:互信息_百度百科 https://baike ...

最新文章

  1. python 使用import导入不同文件下的文件
  2. 深入理解Redis的持久化机制和原理
  3. 今天是星期四,不知道是不是由于太想家了,每天晚上做梦遇到家人
  4. CentOS安装GlassFish4.0 配置JDBC连接MySQL
  5. c++ try_catch throw
  6. 推荐系统的发展与简单回顾
  7. ansible编译安装--操作系统环境Redhat6.4
  8. Gateway internal_length debug with Sara Zhang
  9. 案例详解:Linux文件系统异常导致数据库文件无法访问
  10. Lua虚拟机中的数据结构与栈
  11. 从二进制数据流中构造GDAL可以读取的图像数据(C#)
  12. linux应用对I2C设备驱动4种读写方法
  13. sql 2005 数据库升级2008 数据库 和2005 数据附加2008数据备份文件
  14. 18、【易混淆概念集】第十一章2 实施定量风险分析 模拟、敏感性分析、决策树分析 风险应对策略 消极/威胁应对策略 积极/机会风险应对策略 开拓和提高的区别
  15. linux桌面下雪,分享|Linux/Unix 桌面趣事:让桌面下雪
  16. 计算机专业必读哪些经典书籍?
  17. 系统分析与设计 复习
  18. 当 Python 遇到数据库,这个模块就变得超级好用
  19. GNU toolchain —— (一)介绍
  20. MALTAB中 imshow函数出错

热门文章

  1. 交叉连接(CROSS JOIN)
  2. do-while 与while的区别
  3. 河源微生物实验室建设合理化布置整理
  4. android如何动态显示时间轴,Android时间轴的实现
  5. jw player 源码编译运行笔记
  6. 针对某网站的SEO评测报告
  7. Phoenix 之旅
  8. Phoenix的使用
  9. QT DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d ()
  10. 第43届金马颁奖礼结束,郭富城连庄金马影帝创历史!