Uva1597 -Searching the Web

本文介绍了ACM竞赛中的题目UVA1597 - Searching the Web,涉及模拟搜索算法。需要处理包含关键字的文章,支持AND、OR、NOT操作,并对输入进行小写处理。在实现过程中,作者遇到将关键字视为子串而非单词的错误,导致多次WA,最终通过优化输出分隔符解决。文章强调了模拟题中细节处理和思考的重要性。
摘要由CSDN通过智能技术生成
Uva1597 -Searching the Web

输入n篇文章和m个询问,格式如下:

1、A:搜索包含关键字A的文章,按顺序输出所有包含关键字的行                     2、A  AND B:搜索包含关键字A和B的文章,按顺序输出所有包含关键字的行

3、A OR B:搜索包含关键字A或B的文章,按顺序输出所有包含关键字的行    4、NOT A:搜索不包含关键字A的文章,按顺序输出所有不包含关键字的文章


分析:简单的模拟题,直接对于每一篇文章map查找即可,不过这题有个细节就是查询的关键字都是小写字母,所以在输入的时候要处理一下,全部转换成小写,使用结构体保存每一篇文章的信息,之后对于每一篇文章查询即可。

不过在做这题时,当询问为AND或者OR的形式时,刚开始是写成遍历每一行查找子串了,其实应该是查询有没有包含那个单词,可能会出现这个查询的关键字在这一行中不是单词,而是某一个单词的子串的情况……无尽的WA后好不容易找到了这个傻逼的错误,又wa了十次左右,最后错误居然是因为输出的分隔符错了,应该是十个字符,可是题目给的样例输出中写成9个了,然后我就直接复制的,真是坑爹无下限啊….

使用各种stl容器写的,跑了820ms,想必如果对每个单词维护其处在哪篇文章的哪一行的信息的话,肯定会快了不少,而不需要对每一篇文章去查找了。

这种模拟题居然错了25次才A,整整卡了一天的时间,像这种没法跑数据对拍的题,错了也是很无奈,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值