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

P3879 [TJOI2010] 阅读理解- 字典树

题面

分析

将所有单词存入字典树,重点值怎么判断在哪一行出现过,对于字典树查询的判断字符串是否存在的数组可以开成二维,也就是在查询到某个字符串存在后,再通过循环判断每一层是否存在。

代码
#include <bits/stdc++.h>#define int long longusing namespace std;const int N = 5e5 + 10;int son[N][30];
bitset<1010> vis[N];
int idx;
int n;void insert(string s, int i) {int p = 0;for(int i = 0; i < s.size(); i ++) {int c = s[i] - 'a';if(!son[p][c]) son[p][c] = ++ idx;p = son[p][c];}vis[p][i] = 1;
}vector<int> query(string s) {int p = 0;vector<int> ans;for(int i = 0; i < s.size(); i ++) {int c = s[i] - 'a';if(!son[p][c]) return ans;p = son[p][c];}for(int i = 1; i <= n; i ++) {if(vis[p][i]) ans.push_back(i);}return ans;
}signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> n;for(int i = 1; i <= n; i ++) {int l;cin >> l;for(int j = 0; j < l; j ++) {string s;cin >> s;insert(s, i);}}int m;cin >> m;while(m --) {string s;cin >> s;vector<int> ans = query(s);for(int i = 0; i < ans.size(); i ++) cout << ans[i] << ' ';cout << "\n";}
}

相关文章:

  • Java方法中不使用的对象应该手动赋值为NULL吗?
  • JS 新操作符 —— “?.”、“??”、“??=”
  • Excel 文件比较工具 xlCompare 11.01 Crack
  • Python编程陷阱(五)
  • 【Java并发编程二】线程的基本知识
  • YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度
  • MSYS2介绍及工具安装
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • excel用RAND函数、或者RAND.NV函数生成随机数、这两个函数的区别
  • NFTScan 正式上线 Viction NFTScan 浏览器和 NFT API 数据服务
  • OpenCV+特征检测
  • FDM(傅里叶分解)
  • 基于springboot实现私人健身与教练预约管理系统项目【项目源码+论文说明】
  • Pytorch np.arange函数
  • C#实现将Mysql数据迁移到SQL数据库
  • [deviceone开发]-do_Webview的基本示例
  • 【刷算法】求1+2+3+...+n
  • Angular 响应式表单之下拉框
  • CentOS6 编译安装 redis-3.2.3
  • go语言学习初探(一)
  • Swift 中的尾递归和蹦床
  • Terraform入门 - 1. 安装Terraform
  • Terraform入门 - 3. 变更基础设施
  • ubuntu 下nginx安装 并支持https协议
  • 安卓应用性能调试和优化经验分享
  • 基于HAProxy的高性能缓存服务器nuster
  • 使用 @font-face
  • 突破自己的技术思维
  • 温故知新之javascript面向对象
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 小试R空间处理新库sf
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • mysql面试题分组并合并列
  • ![CDATA[ ]] 是什么东东
  • #NOIP 2014#Day.2 T3 解方程
  • #QT(串口助手-界面)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (003)SlickEdit Unity的补全
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (笔试题)合法字符串
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法)Game
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (万字长文)Spring的核心知识尽揽其中
  • (未解决)macOS matplotlib 中文是方框
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET CLR基本术语
  • .net wcf memory gates checking failed
  • .Net的DataSet直接与SQL2005交互
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)