AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

3879阅读理解

作者: 作者的头像   cccccccup ,  2025-05-09 17:12:45 · 福建 ,  所有人可见 ,  阅读 3


0


阅读理解

题目

微信截图_20250509171051.png
微信截图_20250509171101.png

注意:

son的含义
insert函数
query函数
set的使用

#include <bits/stdc++.h>
using namespace std;

const int N=5e6+7;
int son[N][26];
int idx;
set<int> se[N];
int n,m;

void insert(char s[],int x)
{
    int p=0;
    for(int i=0;s[i];i++){
        int u=s[i]-'a';
        if(son[p][u]==0) son[p][u]=++idx;
        p=son[p][u];
    }
    se[p].insert(x);
}

void query(char s[])
{
    int p=0;
    bool flag=true;
    for(int i=0;s[i];i++){
        int u=s[i]-'a';
        if(son[p][u]==0) flag=false;
        p=son[p][u];
    }
    if(flag==false){
        printf("\n");
        return;
    } 
    for(auto i:se[p]){
        printf("%d ",i);
    }
    printf("\n");
}

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        //第i篇文章
        int l;scanf("%d",&l);
        for(int j=1;j<=l;j++){
            //第j个单词
            char s[27];
            scanf("%s",s);
            insert(s,i);
        }
    }
    scanf("%d",&m);
    for(int i=1;i<=m;i++){
        char s1[27];
        scanf("%s",s1);
        query(s1);
    }
    return 0;
}

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息