zoukankan      html  css  js  c++  java
  • FZU ACM 联合训练 Day1总结

    题解

    E

    题意:
    给你一棵有根树 ,记每个点的权值为 (w[i]) 。对于每个 (i)(sum_{j=1}^{i-1} w[LCA(i,j)])

    题解:
    Marser&Twii几分钟口头AC——DSU on Tree,用树状数组分两轮统计轻子树对重子树的贡献,log方稳过。

    感受:
    M&T调了三个小时没AC,当场暴毙。(现在都不知道挂在哪里)

    G

    题意:
    给一个矩阵B,让你生成一个矩阵序列 (M),其中 (M_i=(prod_{j=c_i}^{i-1} M_j) * B)。( (c,M_0) 给定, (c_i<i,c_{i-1} leq c_i)

    题解:
    明眼人都看的出来,这其实是让你维护一个滑窗。
    push容易啊,我们维护一下从滑窗左端点划过来的乘积 (stB) ,乘上去就是了。
    可是,左端pop怎么破?
    考虑维护一个栈,把从滑窗右端点一直左乘到左端点,每次乘完都把结果丢到栈里面。这样,我们pop的时候就只要弹栈就可以了,而push时更新栈就成了一个难题。
    我们想想怎么撮合这两个做法。
    容易发现,在不pop的时候我们根本是不需要用到这个栈的,所以push的时候我们直接把矩阵乘到 (stB) 上去,不更新栈。
    pop的时候直接弹栈,当栈空的时候,我们直接暴力重构,处理完pop以后,下一个矩阵就恰好等于 (stB) 与栈顶的乘积。
    容易证明每个位置最多进栈一次,复杂度O(nm^3)。

    感受:
    我是常数大师,想题8分钟,卡常64小时。

    Others

    不会。会了也不想写。

    全场感受

    不会。不会。不会。会。调试。卡常。爆零。
    代码能力几近于零。

  • 相关阅读:
    2015第46周六
    2015年第46周五
    2015第46周四
    2015第46周三
    自己写shell命令pwd
    IOS成长之路-Nsstring搜索方法rangeOfString
    【Nginx】epoll事件驱动模块
    深入了解回调函数Java
    VS2008下直接安装Boost库1.46.1版本号
    oracle在schema是什么意思?
  • 原文地址:https://www.cnblogs.com/JiuPleber/p/FZUACMday1.html
Copyright © 2011-2022 走看看