• GMOJ Contest2858 总结


    GMOJ Contest2858 总结

    1 比赛时

    我居然倒着看题.jpg

    1.1 第三题

    唔,也许是字符串有关算法吧…不过,我会25分!

    考虑高仿KMP,我尝试利用前面子串的信息更新后面的。 然而没搞出来

    1.2 第二题

    一眼写出DP式,然后看着数据范围自闭。

    算了,还是打个DFS吧,加个小优化,超过了n就直接组合数。

    1.3 第一题

    很有想法。可以发现一个区间 +d ,实质上是将两段上升子序列拼起来。一个区间 -d 相当于它后面的区间 +d。我们正着扫一遍,反着扫一遍,合并一下,就是答案了。

    2 比赛后

    第一题没有注意合并时一定不一定是两个最长子串相拼,获得了42分的好成绩。

    第二题可以DP,但要压缩状态。设 f[i][j][k] 为 (i, j),乘积为 x 且 (lfloorfrac{(n-1)}{x} floor=k) 时的方案数。

    第三题注意到[l, r]与[x, y]可以O(1)更新至[l+1, r+1]与[x+1, y+1]。O(n2)暴力即可

    3 总结

    1. 实现时注意细节
    2. N方过一万,暴力碾标算。
    3. 多注意算法优化的小技巧。

    Author: Lutts

    Created: 2019-08-20 二 16:55

    Validate

  • 相关阅读:
    3-为什么很多 对 1e9+7(100000007)取模
    6-关于#include<bits/stdc++.h>
    7-n!的位数(斯特灵公式)
    5-math中函数汇总
    6-找数的倍数
    6-Collision-hdu5114(小球碰撞)
    5-青蛙的约会(ex_gcd)
    4-圆数Round Numbers(数位dp)
    4-memset函数总结
    一种Furture模式处理请求中循环独立的任务的方法
  • 原文地址:https://www.cnblogs.com/BunnyLutts/p/11384065.html
Copyright © 2020-2023  润新知