热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自己的_「LuoguP4689[Ynoi2016]这是我自己的发明」

本文由编程笔记#小编为大家整理,主要介绍了「LuoguP4689[Ynoi2016]这是我自己的发明」相关的知识,希望对你有一定的参考价值。题
本文由编程笔记#小编为大家整理,主要介绍了「Luogu P4689 [Ynoi2016]这是我自己的发明」相关的知识,希望对你有一定的参考价值。



题目大意

给出一棵树,每个节点有一个权值,这个数的根节点会改变,每次查询两颗子树中各取一个节点的值相同的方案数.


分析

先转换一下问题,取出的节点的值相同的方案数 (=sum_{i=1}^n(count(i,x) imes count(i,y)))(其中 (count(a,b)) 表示在 (b) 的子树中值 (a) 出现的次数).

然后就变成了一个和 P5268 差不多的一个问题.

在 DFS 序中查询的子树必定为其中的一段区间或者两段区间(其中一段的一端为头,另一段的一端为尾).

对于拆成最多 (16) 个区间的做法这里就不多说了,这里就分享一个只需要拆成 (4) 个区间的大常数做法以及一个可能有点用的卡常方法.

对于拆出来的两个区间都是从数列的边上开始,那么这个东西看起来就像是一个环,那么就可以用处理环的方法处理这个东西,对于 ([1,a])([b,n])((a) 这样两段区间可以先将原序列变成两个相连的原序列,那么这两个区间就变成了 ([b,n+a]),变成了一个区间就比较好处理了(但是这里的 (n) 相当于乘了 (2) 所以常数巨大实测基本会 TLE).

考虑 lxl 是毒瘤,所以数据也会很毒瘤,对于最多拆 (16) 个区间的方法可能会卡满,那么考虑最开始建树的时候随机一个节点为 (root) 建树,对于运气好的时候可以跑飞快.

利用上面两个方法确实是可以通过这道题的(但不能做到次次过).

代码太丑了,想要看的点这里吧(我觉得 (60) 分还是挺容易做到的).


推荐阅读
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 利用Python进行学生学业表现评估与成绩预测分析
    利用Python进行学生学业表现评估与成绩预测分析 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 本文深入探讨了二叉树路径和问题的算法优化方法。具体而言,给定一棵二叉树,需要找出所有从根节点到叶节点的路径,其中各节点值的总和等于指定的目标值。通过详细分析和优化,提出了一种高效的解决方案,并通过多个样例验证了其有效性和性能。 ... [详细]
  • 在《Python编程基础》课程中,我们将深入探讨Python中的循环结构。通过详细解析for循环和while循环的语法与应用场景,帮助初学者掌握循环控制语句的核心概念和实际应用技巧。此外,还将介绍如何利用循环结构解决复杂问题,提高编程效率和代码可读性。 ... [详细]
  • 在 Manjaro 系统中,出现了一种由未预期的符号 `newline` 引起的 bash 语法错误。具体表现为系统提示“bash: 附近有语法错误”。通过将相关字符串从双引号改为单引号,可以有效解决这一问题。此外,建议在编写脚本时,注意检查换行符和特殊字符的使用,以避免类似错误的发生。 ... [详细]
  • C语言中fprintf函数写入文件出现空白问题及解决方法
    C语言中fprintf函数写入文件出现空白问题及解决方法 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 在托管C++中开发应用程序时,遇到了如何声明和操作字符串数组的问题。本文详细探讨了字符串数组在托管C++中的应用与实现方法,包括声明、初始化、遍历和常见操作技巧,为开发者提供了实用的参考和指导。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 概率与期望动态规划的深入探讨与应用分析
    本文深入探讨了概率与期望动态规划的基本原理及其在实际问题中的应用。概率是指某一事件发生的可能性大小,用P(A)表示。若某一事件的所有可能结果共有n种,且每种结果出现的概率相等,而事件A包含其中的m种结果,则该事件的概率P(A)为m/n。例如,在投掷骰子的情况下,如果事件A定义为掷出偶数点,由于共有3种偶数点(2、4、6),而总共有6种可能的结果,因此P(A)为1/2。文章进一步分析了概率与期望动态规划在复杂场景下的建模方法和求解策略,并通过具体实例展示了其在决策优化和风险管理中的应用价值。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 在HDU 1166敌军布阵问题中,通过运用线段树数据结构,可以高效地计算指定区间的敌军数量。该算法不仅能够在限定的时间和内存条件下快速求解,还能够灵活应对动态变化的战场局势,为实时决策提供支持。 ... [详细]
  • 本文探讨了基于点集估算图像区域的Alpha形状算法在Python中的应用。通过改进传统的Delaunay三角剖分方法,该算法能够生成更加灵活和精确的形状轮廓,避免了单纯使用Delaunay三角剖分时可能出现的过大三角形问题。这种“模糊Delaunay三角剖分”技术不仅提高了形状的准确性,还增强了对复杂图像区域的适应能力。 ... [详细]
  • 如何在Excel中使用LINEST函数进行多元线性回归分析?
    LINEST函数利用最小二乘法计算与现有数据最佳拟合的直线,从而得出直线的统计值,并返回描述该直线的数组。此外,LINEST函数还可以与其他函数配合使用,以实现更复杂的多元线性回归分析。通过合理运用LINEST函数,用户可以在Excel中高效地进行数据分析和预测建模。 ... [详细]
author-avatar
广东快乐笨人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有