zoukankan      html  css  js  c++  java
  • 20200722训练记录

    打了 Comet OJ - Contest #9 & X Round 3的 D E 两道题

    A发现树上走来走去很烦

    但是考虑确定了每一步走第几个儿子以后走到哪里是可以算得

    就是hash一下根节点到每个点每一步走的哪个儿子就好了,开个哈希表查一下结束点在哪里

    于是我们就可以二分每次询问走到哪里结束

    注意到带修,线段树上二分就好了

    老板数据太水OJ暴力艹榜

    卡常数所以要手写哈希表才能过

    B发现n*d<=3e6感觉有东西但是A写了有点久没去想

    大概就是一个点的子树中到他的不同的权值数量跟直属中叶子的个数有关

    (O(dw))级别的

    所以每次可以暴力合并子树中不同权值数量并暴力计算不同子树的相互贡献

    时间复杂度是(O(min(n^2,(dw)^2))<=O(ndw))

    然后用unordered_map会MLE我们需要释放空间

    考虑以下这个骚操作

    Map[i].clear();
    Map[i].swap(Map[0])
    

    这里Map[0]是一个空的Map

    ztc巨佬说这样可以释放空间

    但我还是MLE

    于是考虑随机一个根开始dfs

    我的种子取19491001过了

    加油!继续自闭

  • 相关阅读:
    时空权衡之计数排序
    何时发生隐式类型转换
    常量指针与指针常量的区别
    虚函数有关面试题
    C++中数组定义及初始化
    InputStream类的available()方法
    FORK()函数
    面向对象三大基本特性,五大基本原则
    SpringMVC工作原理
    java文件的上传
  • 原文地址:https://www.cnblogs.com/deaf/p/13365587.html
Copyright © 2011-2022 走看看