qwq!为什么!木有非结构体非指针的题解怎么阔以!所以, 我来辽~咻咻咻~ 题面 来分析, 我们可以先建一棵树,来存储整个名单, 然后再判断

for (int i = ; i <= n; i++) {
root = ;
cin >> ch;
int len = strlen (ch);
for (int j = ; j < len; j++) {
int nu = ch[j] - 'a';
if (!tr[root][nu]) tr[root][nu] = ++tot;
root = tr[root][nu];
}
f[root] = ;
}

这一段代码是具体的存储的过程, f数组用来存储整个单词被用过几次。可以自己分析品味一哈, 这个root变量到最后存储的其实就是您目前存储的单词的最后一个字母, 也就是代表了这个单词的结束, 所以直接用root这个变量来表示这个单词被用过几次即可。

for (int j = ; j < len; j++) {
int nu = ch[j] - 'a';
if (!tr[root][nu]) {
printf ("WRONG\n");
break;
}
root = tr[root][nu];
if (j == len - && f[root] == ) printf ("REPEAT\n");
if (j == len - && f[root] == ) f[root] = ,printf ("OK\n");
}

查询, 根据题目意思, 按要求输出, 并且要注意换行, 大写之类的细节性问题。要注意, 每一次判断到最后的时候, 判断是否是被用过, 没有被用过的, 需要标记表示应经用过了

再就是root这个变量每次都要更新(我真的调了好久)

完整代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char ch[];
int n, m, tr[][], s, root, tot, f[];
int main () {
scanf ("%d", &n);
for (int i = ; i <= n; i++) {
root = ;
cin >> ch;
int len = strlen (ch);
for (int j = ; j < len; j++) {
int nu = ch[j] - 'a';
if (!tr[root][nu]) tr[root][nu] = ++tot;
root = tr[root][nu];
}
f[root] = ;
}
scanf ("%d", &m);
for (int i = ; i <= m; i++) {
root = ;
cin >> ch;
int len = strlen (ch);
for (int j = ; j < len; j++) {
int nu = ch[j] - 'a';
if (!tr[root][nu]) {
printf ("WRONG\n");
break;
}
root = tr[root][nu];
if (j == len - && f[root] == ) printf ("REPEAT\n");
if (j == len - && f[root] == ) f[root] = ,printf ("OK\n");
}
}
return ;
}

谢谢~

洛谷P2580 于是他错误的点名开始了 题解的更多相关文章

  1. 洛谷 P2580 于是他错误的点名开始了 题解

    每日一题 day10 打卡 Analysis trie树模板题,只需用到简单的插入和查询就好了 如果想要学trie树,见信息学奥赛一本通·提高篇P82 #include<iostream> ...

  2. [洛谷P2580]于是他错误的点名开始了

    洛谷P2580的一个水题,用啥都能过,不过为了练习一下刚刚学会的字典树,还是认真做一下吧. #include <cstdio> #include <cstring> using ...

  3. [洛谷P2580]于是他错误的点名开始了(Trie树)

    传送门 洛谷P2580的一个水题,用啥都能过,不过为了练习一下刚刚学会的字典树,还是认真做一下吧. #include <cstdio> #include <cstring> u ...

  4. 洛谷 P2580 于是他错误的点名开始了

    题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...

  5. 洛谷—— P2580 于是他错误的点名开始了

    https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次 ...

  6. luogu P2580 于是他错误的点名开始了

    luogu  P2580 于是他错误的点名开始了 https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边 ...

  7. P2580 于是他错误的点名开始了(trie)

    P2580 于是他错误的点名开始了 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉 ...

  8. 洛谷P4014 分配问题【最小/大费用流】题解+AC代码

    洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...

  9. 洛谷 P4016负载平衡问题【费用流】题解+AC代码

    洛谷 P4016负载平衡问题 P4014 分配问题[费用流]题解+AC代码 负载平衡问题 题目描述 GG 公司有n个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 n ...

随机推荐

  1. K8S学习笔记之Grafana App for Kubernetes的配置

    Grafana有一套针对Kubernetes监控的APP,和Grafana-Zabbix App类似,但是配置咋一看比较麻烦,主要参数都是来自K8S. 这款APP的详细介绍请参考Grafana App ...

  2. spring boot整合spring Data JPA和freemarker

    1.spring Data JPA简介 是一个替代hibernate的一个作用于数据库的框架. 2.整合 1.导入依赖 <dependency> <groupId>org.sp ...

  3. JavaScript 之 页面加载事件

    一.onload 加载事件 onload 是 window 对象的一个事件,也可以省略 window 直接使用. 常用方式: <head><script> windown.on ...

  4. 安卓样式Style和主题Theme

    1. 区别 不过style是针对view来说的,比如TextView和EditText这些:而Theme必须针对整个activity或者整个application 2. 样式 创建一个样式,根元素 & ...

  5. GitHub Python项目推荐|瓦力Devops开源项目代码部署平台持续部署

    GitHub Python项目推荐|walle - 瓦力 Devops开源项目代码部署平台 项目热度 标星(star):8418 (很不错的实用项目,大神作品,建议关注) 标星趋势 关注(watch) ...

  6. 数据结构与算法—simhash

    引入 随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地识别它们是一个很有意义的课题. 例如,对于搜索引擎的爬虫系统来说,收录重复的网页是毫无意义的,只会造成存储和计算资源的浪费: 同时 ...

  7. 关于连接不上SVN的部分解决方案——No repository found in svn localhost

    今天如往常一样做事,期间发现一个问题,于是就打算将文件与 svn 上的文件进行对比,可谁成想 Eclipse 突然弹框报错,然后我到SVN资源库中直接刷新打开 svn 的地址,又弹框报错:文件夹不存在 ...

  8. css transform解释及demo(基于chrome)

    transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. Transform:(css3 转换) 注意:这些效果叠加时,中间用空格隔开 作用:能够对元 ...

  9. CentOS7- 配置阿里镜像源

    CentOS7- 配置阿里镜像源 1. 安装wgetyum install -y wget 2. 用wget下载repo文件 输入命令wget http://mirrors.aliyun.com/re ...

  10. 服务器安装python3环境

    服务器安装python3环境 先安装相关包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel re ...