这题乍一看很想树上莫队、也很像树形dp,也感觉要用树链剖分,树上差分

但又好像不大对——

莫队的话、单点查询就和暴力无异、、    树形dp状态冗杂。     链剖lca多个点不好差分、、

链剖+set好像会超时、

打了一个,但网上没有评测、、、

极限情况(一条链+所有m在最后一个点上 ..)应该是o(mn)的  10^10、、、数据不坑的话60分还是有的、

有空再想想吧、

恩,先分析一下题目,这个m的总数虽然很大,但颜色种类数是<=100000我们或许可以从种类数做处理。

而且我们可以注意到颜色输入时,顺序是无所谓的,或许我们可以离散化一下离线处理。

这样我们就可以求lca差分了 。 但如果是裸的lca的话,每一个颜色相同的点必须和其他颜色相同的点求lca,对于完全树,效率是满意的 10^7 ,但如果是极限情况,效率就变成了       10^10(和上面一样)      感觉差分判终点的lca应该有很多重复计算的地方。

诶,既然一种颜色重复的只算一次的话,为什么不打bool+树状数组?

而且 它每个点的颜色只会对它上面的节点造成影响,从某种程度上说这或许是单调的,或许我们在剖分之后扫的时候每个重链可以新建一个set记录一下,这样对于极限情况反而会更快,但这样的话效率取决于重链的个数及深度,要是很多重链来回跳的话效率会很低:

就像这样:

不稳定的果断弃;

好了,感觉所有的路都封死了,基本没有办法了

来看题解:

好吧,离正解很近了,但倒在门口了、、

其实第一点我完全想到了,但第二点我只想到第一句话、、

其实我在做的时候也想过为每对点找lca做优化,但实在没有想到dfs序,转而用链剖,但对于此题来说,链剖的lca、更新性质不如dfs序lca、更新性质。。

就是说dfs序相近的求出的lca一定是最小的lca、、

确实,,离线lca的本质就是区间缩得越小,lca越小、、

这样的话就可以o(nlog(n))求lca了

复杂度就降为了 5000000左右、很轻松的就能过了

总结:

知道了题目的特性剩下的最重要的就是选性质最契合的工具了,看来不能抓住一个看似不错的算法不放,有可能另一种做法更好、

而且思考要多角度,要相信正解是人可以想出来的

2017.3.9 Harry and Christmas tree 失败总结相关推荐

  1. PKU 3013 Big Christmas Tree 最短路 spfa

    题意/Description:     Christmas is coming to KCM city. Suby the loyal civilian in KCM city is preparin ...

  2. Russian Dolls on the Christmas Tree

    题目链接:Russian Dolls on the Christmas Tree 显然可以dfs序转区间之后上莫队,不过感觉会被卡. 其实也可以dfs序之后,对询问区间排序,然后线段树. 我懒得dfs ...

  3. VC 2017 redist 包到最后提示安装失败,0x80240037

    安装VC 2017 redist 包到最后提示安装失败,0x80240037错误 1.在电脑中搜索Windows6.1-KB2999226-x64.msu,一般在ProgramData文件夹下. 2. ...

  4. POJ-3013: Big Christmas Tree(dij,spfa)

    POJ-3013: Big Christmas Tree 题目链接:POJ:3013 Description Christmas is coming to KCM city. Suby the loy ...

  5. poj 3013 Big Christmas Tree(最短路变形)

    传送门:POJ 3013 Big Christmas Tree 描述: Big Christmas Tree Time Limit: 3000MS   Memory Limit: 131072K To ...

  6. SQL Server 2017 在Windows Server2012 R2中安装失败的解决方法

    SQL Server 2017 在Windows Server2012 R2中安装失败的解决方法 由于Windows Server2012 R2更新问题导致SQL Server 2017安装失败.提示 ...

  7. win10+VS 2017 安装 CUDA10(Visual Studio Integration失败)

    安装参考:windows 10系统nvidia的cuda软件的安装 windows 安装 CUDA可能遇到这个问题:选择自定义安装,但是失败,如下图所示,Visual Studio Integrati ...

  8. Visual Studio 2017 安装Windows SDK10.0.17134.0 失败的解决办法

    刚刚把电脑重装了,对于一个编程爱好者来说,安装完系统首先安装了Visual Studio 2017,安装完成后出现了"安装完成,但出现了警告,windowsSDK安装失败"!创建c ...

  9. 2017年高性能计算领域的成功与失败

    来源:中科院信息科技战略情报 概要:2017年,机器学习和各种人工智能应用在高性能计算领域持续发挥着重要影响力. 2017年12月9日,TOP500官网刊文总结了高性能计算在2017年取得的新进展,以 ...

最新文章

  1. matlab怎么分析一段音频,Matlab分析音频
  2. 全网最细 | 21张图带你领略集合的线程不安全
  3. 博士大佬为机器学习总结的人工智能入门指南!
  4. vue 解决跨域 调试_Electron-vue解决跨域
  5. zabbix 彻底解决图片中文乱码
  6. 文本特征选择 java代码_文本分类入门(十)特征选择算法之开方检验
  7. vlc windows 编译文档
  8. java数据写入文件方案,Java如何将字符串数据写入文件?
  9. ORACLE穿透防火墙问题
  10. DTRACE简介(2)
  11. react学习(54)--注意传递请求
  12. 关于Redis配置主从复制踩到的坑,主机不显示从机的连接信息
  13. 各年龄段都是怎么提加薪的?
  14. JavaScript 邮件正则练习
  15. centos yum 安装php8 php8.0 使用remi源
  16. 第12课:生活中的构建模式——想要车还是庄园
  17. 项目实训(十三)安装pun,pun的基础使用和概念
  18. 深度学习策略之图像预处理
  19. 头条视频中视频玩法技巧
  20. 白话机器学习-Encoder-Decoder框架

热门文章

  1. centos mysql 主从_Centos下MySQL主从同步配置
  2. windows下gvim8打开文件中文乱码处理
  3. ARGMAX(以及ARGMIN)的意思
  4. mongodb更新操作
  5. 串口上升时间标准_国家电网公司时钟同步标准.pdf
  6. 二进制转换 html,javascript 处理回传的二进制图像并显示在html上
  7. android 开启线程关闭对话框,java – 从后台线程的PopUp对话框Android
  8. c#启动mysql数据库服务器_c# - 使用C#应用程序连接Web服务器中的mysql数据库
  9. python 获取当前是星期几_基金定投选星期几更划算?[python统计分析]
  10. vue写js代码_vue.js弹出式音乐播放器特效代码