题解:(A)[EPXLQ2024 fall round] 风吹起了从前

news/2024/12/15 21:37:51/文章来源:https://www.cnblogs.com/naughty-naught/p/18608767

(A)[EPXLQ2024 fall round] 风吹起了从前

题意

给定 \(n\) 个字符串 \(a_1\)\(a_n\)。第 \(i\) 个字符串拥有一个深度值 \(r_i\),有一个价值 \(v_i\)

再给你 \(m\) 次询问,每次给出一个字符串 \(t\) 和深度 \(d\),求以 \(t\) 为前缀且深度值小于 \(d\) 的字符串价值之和。

Soluion

显然要使用字典树来处理,这道题可持久化字典树可以实现,但未免有点小题大做,本题解用普通字典树来实现。

首先思考,若每次询问的 \(d\) 单调不降该如何处理。

显然,先将字符串 \(a\)\(r\) 从小到大排序,使用一个指针 \(pos\) 表示当前把几个字符串放入了字典树中。对于每次询问,不断将字符串放入字典树(在代码中即 ++pos)直到 \(a_{pos} > d\),然后求值即可。

那么,\(d\) 不是单调不降的该怎么办呢?

因为本题不强制在线,所以直接将询问离线下来,排序使得 \(d\) 即可。

其他疑问见代码。

代码

//written by Naught
#include <bits/stdc++.h>
using namespace std;typedef long long ll;
#define Maxn 20005
#define Maxm 200005
#define Maxlen 105
#define fo(i, l, r) for (int i = l; i <= r; ++i)struct A
{int r, val/*, id*/;char s[Maxlen];
}a[Maxn];struct Query
{int div, id;char s[Maxlen];
}q[Maxm];struct Trie
{int son[30];ll sum;
}t[Maxn*Maxlen];int cnt = 1;
int n, m, pos = 1;
ll ans[Maxm];void Insert(char *s, int val)
{int p = 0, len = strlen(s);fo(i, 0, len-1){int ch = s[i]-'a';if(t[p].son[ch] == 0) t[p].son[ch] = cnt++;p = t[p].son[ch];t[p].sum += val;}
}ll find(char *s)
{int p = 0, len = strlen(s);fo(i, 0, len-1){int ch = s[i]-'a';if(t[p].son[ch] == 0) return 0;p = t[p].son[ch];}return t[p].sum;
}signed main()
{scanf("%d%d", &n, &m);fo(i, 1, n) scanf("%d%d%s", &a[i].r, &a[i].val, a[i].s);sort(a+1, a+n+1, [](A x, A y) {return x.r < y.r;});fo(i, 1, m) scanf("%d%s", &q[i].div, q[i].s), q[i].id = i;sort(q+1, q+m+1, [](Query x, Query y) {return x.div < y.div;});fo(i, 1, m){while(pos <= n && a[pos].r <= q[i].div) Insert(a[pos].s, a[pos].val), ++pos;ans[q[i].id] = find(q[i].s); }fo(i, 1, m) printf("%lld\n", ans[i]);return 0;
}

Tips

\(100 \times 10^9\) 会爆 int,记得开long long

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853486.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Adobe Bridge 2025下载与安装

1、安装包 我用夸克网盘分享了「Bridge 2025」 链接:下载地址 2、安装教程(安装前关闭系统防护) 1) 下载软件安装包,双击Set-up.exe安装2) 修改安装目录,点击继续3) 点击继续,提示正在安装进度4) 安装完成,点击启动5) 启动程序

fastapi本地部署,网页调用

Fastapi本地部署: 1、启动main.py。 文件test_main.http,点击3处运行,运行接口报错: Response code: 504 (Gateway Time-out); Time: 10032ms (10 s 32 ms); Content length: 101929 bytes (101.93 kB)2、文件main.py运行。 在浏览器输入:http://10.58.71.144:8000/ 。 打…

【MySQL内核】MySQL中一条 SQL语句是如何执行的?

MySQL执行一条SQL语句,涉及到以下几个过程:1、客户端连接 要执行 SQL 语句,首先用户需要通过客户端连接到MySQL服务器,连接时需要指定用户名和密码,MySQL服务器中的连接器模块会对用户提供的用户名和密码进行验证,并检查用户是否拥有执行特定SQL语句的权限。一个用户成功…

Adobe Audition 2025各版本安装包下载与安装

1、安装包 我用夸克网盘分享了「Adobe Audition 2025」 链接:下载地址 2、安装教程(安装前关闭系统防护) 1) 下载软件安装包,双击Set-up.exe安装2) 修改安装目录,点击继续3) 点击继续,提示正在安装进度4) 安装完成,点击启动5) 启动程序…

SVN 报错 | svn: E170004: Commit failed (details follow): svn: E170004: Directory xxx is out of date

问题描述 IDEA 中通过 SVN 拉取项目后进行修改,第一次 commit 提交代码的时候成功提交,第二次修改后再提交的时候报错了,提示“Directory xxx is out of date”解决方法 报错的原因是本地项目过时了,和 svn 服务器的项目版本不一致。需要先 update 更新本地的项目,再重新修…

文件保护

文件保护 ‍ ​​ ‍一、口令保护 口令一般存放在文件对应的 FCB 或索引结点中。用户访问文件前需要先输入“口令”,操作系统会将用户提供的口令与 FCB 中存储的口令进行对比,如果正确,则允许该用户访问文件。优点:保存口令的空间开销不多,验证口令的时间开销也很小 缺点:…

文件系统的全局结构(布局)

文件系统的全局结构(布局) 一、文件系统在外存中的结构 演变过程:原始磁盘(刚被生产出来)​​物理格式化(低级格式化):划分扇区,检测坏扇区,并用备用扇区替换坏扇区(骗过OS)​​磁盘分区(分卷Volume)分为C盘、D盘等逻辑格式化完成各分区的文件系统初始化 注:逻辑…

虚拟文件系统文件系统挂载(安装)

虚拟文件系统&文件系统挂载(安装) 一、虚拟文件系统 (一)普通的文件系统 先来看不存在虚拟文件系统的普通文件系统,彼此之间实现同一功能的接口具有差异,比较混乱。 ​​ ‍ (二)VFS 虚拟文件系统 Virtual File System 为解决同时使用不同文件系统需要频繁改动底层…

文件的物理结构(文件分配方式)

文件的物理结构(文件分配方式) ‍ ​​ ‍类似于内存分页,磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”。很多操作系统中,磁盘块的大小与内存块、页面的大小相同。 内存与磁盘之间的数据交换(即读/写操作、磁盘 I/O )都是以“块"为单位进行的。即每次读入…

【Adobe Animate 2024下载与安装教程】

1、安装包 我用夸克网盘分享了「Animate 2024」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:下载地址2、安装教程(建议关闭杀毒软件和系统防护) 1) 下载并解压下载的安装包,右击装载2) 双击Setup.exe安装…

jsp前端页面识别不了后端传过来的model-${user.id}

调试: controller 成功接收到参数。并且给model传入数据。界面也跳转了 jsp文件中使用 ${user.id} 获取数据 但是处理的依然是 ${user.id} 而不是传入来的数据。 原因: 默认创建的web,其配置文件 web.xml文件是使用 2.3版本 <!DOCTYPE web-app PUBLIC"-//Sun Micros…

基于ESP32的桌面小屏幕实战[4]:硬件设计之PCB Layout

1. PCB Layout 步骤生成PCB确定PCB layout规范绘制板框尺寸布局 布局规范:按电气性能合理分区,一般分为:数字电路区(即怕干扰、又产生干扰)、模拟电路区(怕干扰)、功率驱动区(干扰源); 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁; 对于质…