P4427 [BJOI2018] 求和

news/2025/10/29 19:38:15/文章来源:https://www.cnblogs.com/qwqSW/p/19175193

题目传送门

欢迎光临我的博客喵

(以下记每个点的点权为它在此题中的深度)

(以下运算均忽略取模)

我曾经听说过一个技巧:对于有关树上路径的一类问题,我们可以把 \(u -> v\) 的路径拆成 \(u->LCA\)\(v->son_{LCA}\) 两条链,其中 \(LCA\)\(u,v\) 的最近公共祖先,\(son_{LCA}\) 指的是 \(v\) 的祖先中是 \(LCA\) 的儿子的节点。

而且我们发现这样拆的话,两条链上的点权还是连续的。这意味着我们可以直接预处理出一个 \(qwq_{i,j}\) (别问为什么是这个名,因为前缀),表示 \(1^i+2^i+\cdots+j^i\) 的值。

这样对于某组查询 \((u,v,k)\),我们假设 \(a=dep_{u},b=dep{v},c=dep_{LCA},d=dep_{fa_{LCA}}\),这样我们拆出来的第一条链的贡献是 \(qwq_{k,a}-qwq_{k,d}\),第二条链的贡献就是 \(qwq_{k,b}-qwq_{k,c}\),有点类似前缀和差分的思想。

该查询的最终结果就是两个贡献相加。

然后我们发现这个题结束了。我们直接倍增求LCA(当然你怎么求都行,不做要求),然后根据上面式子求答案就是了。

时间复杂度 \(O(nk \log k + (n + m) \log n)\)

代码:

P4427
#include<bits/stdc++.h>
#define int long long
#define _(x,y) (((x-y)%mod+mod)%mod)
using namespace std;inline int read(){int x=0,f=1;char c=getchar();while(c<48){if(c=='-') f=-1;c=getchar();}while(c>47) x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f;
}const int N=3e5+5;
const int mod=998244353;
int n,m,h[N],tot,dep[N],f[23][N],qwq[52][N];
struct sw{int u,v,nxt;
}e[2*N];inline void add(int u,int v){e[++tot]={u,v,h[u]};h[u]=tot;
}inline void dfs(int u,int fa){for(int i=h[u];i;i=e[i].nxt){int v=e[i].v;if(v==fa) continue;f[0][v]=u;dep[v]=dep[u]+1;dfs(v,u);}
}inline int qpow(int a,int b){//快速幂 int ans=1;while(b){if(b&1) ans=(ans*a)%mod;a=(a*a)%mod,b>>=1;}return ans;
}inline int lca(int x,int y){//求最近公共祖先 if(dep[x]<dep[y]){swap(x,y);}for(int i=20;i>=0;i--){if(dep[f[i][x]]>=dep[y]){x=f[i][x];}}if(x==y){return y;}for(int i=20;i>=0;i--){if(f[i][x]!=f[i][y]){x=f[i][x],y=f[i][y];}}return f[0][x];
}signed main(){n=read();//qwq数组预处理 for(int i=1;i<=50;i++){for(int j=0;j<n;j++){qwq[i][j]=(qwq[i][j-1]+qpow(j,i))%mod;//我是用快速幂推的qwq数组,当然也可以不用快速幂省个log }}for(int i=1;i<n;i++){int u=read(),v=read();add(u,v);add(v,u);}//LCA&dep预处理 dfs(1,0);for(int i=1;i<=20;i++){for(int j=1;j<=n;j++){f[i][j]=f[i-1][f[i-1][j]];}}m=read();for(int i=1;i<=m;i++){int u=read(),v=read(),k=read();int LCA=lca(u,v);//_(x,y)详见define //u->LCAint ans1=_(qwq[k][dep[u]],qwq[k][dep[f[0][LCA]]]);//v->son[LCA]int ans2=_(qwq[k][dep[v]],qwq[k][dep[LCA]]);int ans=(ans1+ans2)%mod;printf("%lld\n",ans);}return 0;
}

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

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

相关文章

C++ string底层完成逻辑(与类知识点结合)string——下

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025青科会启幕,网易伏羲携游戏AI前沿实践共话未来

2025年10月24日-26日,由中国科协与浙江省人民政府共同发起的2025世界青年科学家峰会(以下简称“青科会”)在浙江温州举行。这场面向全球青年高层次人才的科技盛会,吸引了来自47个国家和地区、70余家国际科技组织的…

Python电力负荷预测:LSTM、GRU、DeepAR、XGBoost、Stacking、ARIMA结合多源数据融合与SHAP可解释性的研究

全文链接:https://tecdat.cn/?p=44127视频出处:拓端抖音号@拓端tecdat分析师:Junye Ge作为数据科学团队,我们在电力能源领域深耕多年,曾为多地电网公司提供负荷预测咨询服务,本文内容正是基于过往某省级电网预测…

第二十九篇

今天是10月29日,上了离散和马原

Paper Reading: Symbolic Regression Enhanced Decision Trees for Classification Tasks

本文提出的 SREDT 模型融合了符号回归与决策树的优势,其核心思想是在决策树构建过程中,将传统的轴平行分割替换为通过符号回归发现的丰富数学表达式分割。SREDT 基于 CART 算法框架,但在每个节点分割时不再局限于单…

专题:2025年医疗健康行业状况报告:投融资、脑机接口、AI担忧|附130+份报告PDF合集、图表下载

原文链接:https://tecdat.cn/?p=44088原文出处:拓端抖音号@拓端tecdat2025年医疗健康行业在“消费透明化”“资本聚焦创新”“技术跨国竞争”“AI风险管控”四大维度呈现显著特征——香港私家医院常见治疗收费差距最…

SQL Server创建指定数据库的账号且看不到其他任何用户创建的数据库

SQL Server创建指定数据库的账号且看不到其他任何用户创建的数据库-- 创建一个 SQL Server 身份验证的登录名CREATE LOGIN 登录名WITH PASSWORD = 设置密码; -- 切换到你希望授权的特定数据库USE 指定数据库名称;GO --…

专题:2025年制造业数智化发展白皮书:数字化转型与智能制造|附130+份报告PDF、数据、绘图模板汇总下载

原文链接:https://tecdat.cn/?p=44117原文出处:拓端抖音号@拓端tecdat20年前,制造业还是“机器轰鸣、人工巡检”的传统图景,一条生产线要靠老师傅的经验把控质量;10年前,自动化设备开始普及,但数据孤岛让“智能…

大家好,我个人爱好开通了一个公众号!!!

大家好,我个人爱好开通了一个公众号!!! 个人爱好,开通了一个公众号“与君说事”,与君说世间事,带您玩转生活圈!让我们一起关注世间百态,共赏人间烟火! 欢迎喜欢我博客园的有缘人,移步微信公众号,搜索关注…

思源笔记多端同步方案:Docker MinIO + Siyuan-unlock

思源笔记多端同步方案:Docker MinIO + Siyuan-unlock1. 需求背景 思源笔记功能强大,有多端 PC 使用需求,但官方同步需付费 78 元。本方案仅需一台服务器即可实现免费同步。 适用人群:拥有一台服务器 多台 PC 需要同…

AI辅助渗透测试小试牛刀

AI辅助渗透测试小试牛刀 传统的自动化渗透测试工具在过去几十年中已成为安全评估的标准组成部分。然而,这些工具的效能主要局限于已知漏洞的广泛扫描和配置检查,其内在的局限性也日益凸显。传统自动化工具本质上是确…

python设置永久的国内镜像源

python设置永久的国内镜像源命令行配置(推荐) 通过pip config命令直接修改全局配置: # 设置全局镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/​# 设置信任的主机(解决HTTPS证…

完整教程:FFmpeg 全面教程:从安装到高级应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

程序员修炼之道:从小工到专家读后感(2025_10_29)

翻开《程序员修炼之道》的前三章,一种奇特的熟悉感扑面而来——不是那种已知内容的熟悉,而是那种“这正是我需要的”的熟悉。作为一个在代码世界中摸索前行的人,我曾无数次陷入技术的细枝末节,却忘了思考自己究竟在…

VisionPro学习笔记- CogCreateGraphicLabelTool

CogCreateGraphicLabelTool 工具文档 1. 工具概述 CogCreateGraphicLabelTool 是康耐视 VisionPro 视觉软件中的核心图形标注工具,用于在图像上叠加文本或坐标信息,以标识、注释或动态显示检测结果。它的主要功能是通…

Linux内核6.15.4性能调优、网络优化与稳定性增强详解

本文深入解析Linux内核6.15.4版本的关键改进,涵盖内存管理优化、网络协议栈增强、文件系统性能调优及稳定性修复。该版本重点解决了TLB刷新效率、零拷贝接收、TCP重传控制等核心问题,为生产环境部署提供重要参考。Li…

跨平台发布总翻车?真正能“一稿通发”的编辑器长什么样?实测揭晓答案

跨平台发布总翻车?真正能“一稿通发”的编辑器长什么样?实测揭晓答案2025年公众号编辑器怎么选?实测5款主流工具,这款全链路提效神器让运营效率翻3倍! 作为一名深耕新媒体领域十年的资深运营人,我每天都会被同行…

深入解析:爬虫访问第三方 HTTPS 网站时遇到的 SSL 异常处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

团队博客 1plus:团队项目NABCD方案

厂房租赁AI赋能小程序NABCD方案 一、Need需求 (一)房东端(开发区企事业单位) 1.背景 企事业单位(甲方)大量房源空置,没得到合理利用。在架起房源与用户间桥梁的过程中,需要着重考虑信息安全与权限管理方面的责…