大意:按照字典序输入一个词典,输出其中所有的复合词。复合词是指可以由字典中任意两个不同的单词组合而成的词,比如new+born=newborn

如果每个词都和另外的词生成一个新词,然后查询,这种算法是O(n^2)的,因为n<120000,所以显然会超时。

如果将每个词拆分,然后和词典中的词匹配,此时复杂度是O(m*n),m是指单词的长度。显然单词长度不会很大,所以该复杂度可以接受。

std::map

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{map<string,bool>hash;string str[150000];hash.clear();string temp;string a,b;int num=0;while(cin>>str[num]){hash[str[num]]=true;num++;}for(int i=0;i<num;i++){temp=str[i];for(int j=0;j<temp.size()-1;j++){a=temp.substr(0,j+1);b=temp.substr(j+1);if(hash[a]&&hash[b]){cout<<temp<<endl;break;}}}return 0;
}

UVA10391-复合词相关推荐

  1. UVA10391复合词

    题意:      给定一个词典,然后问里面那些是复合词,复合词就是当前这个单词正好是有两个单词拼接而成. 思路:       用map来标记是否出现过,然后先按长短排序,把每个单体拆分成任意两个可能的 ...

  2. UVa10391 复合词

    给出一个词典,找出所有的复合词,即恰好有两个单词连接而成的单词.输入每行都是一个由小写字母组成的单词.输入已按照字典序从小到大排序,且不超过120000个单词.输出所有复合词,按照字典序从小到大排列. ...

  3. ACM Uva10391复合词

    题意如下 输入一系列由小写字母组成的单词.输入已按照字典序排序且不超过120000个.找出所有的复合词,即恰好由两个单词连接而成的单词. 下面展示C++程序 #include<set> # ...

  4. 算法竞赛入门经典 第二版 习题5-5 复合词 Compound Words uva10391

    题目:https://vjudge.net/problem/UVA-10391 思路:用vector存下单词,因为单词已按字典序排列于是复合词前半个单词一定在这个复合词之前,于是遍历寻找在首字母更变之 ...

  5. 算法竞赛入门经典(第2版)习题5-5 复合词 UVa10391

    用拆分词的思路很棒 #include <iostream> #include <cstdio> #include <cstdlib> #include <st ...

  6. 习题5-5 复合词 UVa10391

    1.题目描述:点击打开链接 2.解题思路:原来试了若干种思路,都失败了:1.枚举两个单词获得TLE(写了好几遍都是TLE==),2,从一个单词中拆分出一个已有单词查找剩余部分是否存在获得WA,最后决定 ...

  7. Uva10191 复合词

    题目描述: 给出一个按字母序排列的单词列表,找到其中存在的复合词.复合词的定义是由单词列表中其他的两个单词拼接而成.所有单词均为小写. 思路: 如果直接两层遍历所有的单词组合,看他们加在一起是否是单词 ...

  8. 15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告

    励志用少的代码做高效的表达 题目(提交)链接→UVA-10391 本题实质是#include<string>头文件的substr()字符串分割函数与#include<algorith ...

  9. mysql重叠的词_举例说明叠音词,重叠式复合词,词的重叠,三者有何不同?

    叠音和重叠是重叠构词的两种方式. 叠音词是单纯词,由相同的不成语素的音节重叠而成,分为两种情况: 1.单个音节有音无义, 如:皑皑.猩猩 2.单个音节有音有义,但与重叠后构成的词的意义完全不同,也没有 ...

  10. 计算机英语是不是复合词,计算机英语专业词汇的构成.ppt

    计算机英语专业词汇的构成 * 计算机英语专业词汇的构成 专业词汇的构成 派生词 (derivation) 复合词 (compounding) 混成词 (blending) 前缀 缩略词 (shorte ...

最新文章

  1. 参加Java培训需要注意哪些
  2. python classmethod知识_python基础知识讲解——@classmethod和@staticmethod的作用
  3. python3 报错 Resource temporarily unavailable
  4. 为什么我使用 Linux 开发
  5. 给XCODE加一个注释的小插件
  6. 【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )
  7. linux下杀死进程全权讲解
  8. NLP基础|中英文词向量评测理论与实践
  9. Array.prototype.slice.apply(arguments)和[].slice.apply(arguments)解析
  10. 公式字符串转换为公式或结果
  11. 4.数据结构 --- 串
  12. sudo chown r mysql_Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令
  13. Hyperledger fabric并发并行性
  14. 智课雅思词汇---十二、vent是什么意思
  15. undefined运算
  16. 扫 雷 小 游 戏
  17. (二)textarea中placeholder不显示
  18. 心随风起,葬身荒野亦无悔;志在止戈,醉卧沙场最逍遥。
  19. 用户同步管理及集群初始配置-集群搭建步骤7
  20. 流量劫持是如何产生的?

热门文章

  1. 人生苦短,Python当歌
  2. java猜拳程序_java用循环方式实现和计算机玩猜拳的程序
  3. Java人机猜拳游戏
  4. Redis的介绍和使用
  5. 详解Python的33个保留字
  6. qt 中隐藏namedwindow的标题栏
  7. lol找不到聊天服务器,关于LOL无法连接聊天服务器的解决方法!
  8. 【​突发】小米用户物流信息在黑市疯传!米粉警惕诈骗风险
  9. 男人必备的处事说话技巧,实现完美交际生活
  10. mysql 查看登陆记录_查看用户登录记录