zoukankan      html  css  js  c++  java
  • 2017-2018 Northwestern European Regional Contest (NWERC 2017)

    Rank Solved A B C D E F G H I J K
    --/-- 6/11 . O Ø O Ø Ø O O O . O

    O: 当场通过

    Ø: 赛后通过

    .: 尚未通过

    A Ascending Photo

    unsolved


    B Boss Battle

    solved by chelly


    chelly's solution

    C Connect the Dots

    upsolved by chelly


    贪心一个一个做即可,维护可缩小的拱形

    D Dunglish

    solved by ABerror


    ABerror's solution

    E English Restaurant

    upsolved by chelly


    首先额外加入t个大小为g的桌子
    然后来的每组人都有对应的位置坐下,他们坐在哪个桌子取决于他们的人数和前面的占位情况
    容易发现最后肯定坐成几个连续段,每个连续段是独立的
    我们可以先dp求出(f[i][j])表示只有i~j桌子坐了人,其它地方没坐人的方案数和权值和,转移枚举最后一个坐的位置
    然后从前往后dp,(dp[i][j])表示前i个桌子坐了j组人的方案数和权值和
    答案就是dp[n+t][t]表示的期望
    注意算权值和的时候,如果某个位置下标>n,那么权值是0

    F Factor-Free Tree

    upsolved by chelly


    首先对于每个位置预处理出(l_i,r_i)表示和第i位的数字互质的区间有多大,这一部分可以预处理目前每个质数最后一次出现的位置来求出
    然后显然我们现在要构出一段区间[1,n],要选出一个位置i作为根,显然要(l_i<=1,r_i>=n),然后再不断分治下去
    实际上,可以证明如果对于某个区间[l,r],有多个可选根,那么选任何一个都是无所谓的
    现在考虑时间效率,我们每次对于一个区间[l,r]找一个位置i可以覆盖这个区间,暴力找的话时间复杂度是不对的
    我们可以从两边往中间找,容易发现这相当于是逆过来的启发式合并(也叫启发式分治),所以时间复杂度是(O(nlogn))

    G Glyph Recognition

    solved by ABerror


    ABerror's solution

    H High Score

    solved by chelly&&ABerror


    chelly's solution

    I Installing Apps

    solved by chelly


    chelly's solution

    J Juggling Troupe

    unsolved


    K Knockout Tournament

    solved by ABerror&chelly


    chelly's solution

    Replay

  • 相关阅读:
    word2vec层次化softmax理解
    python动态加载模块,并获取模块中的类与方法(类似反射)
    用Python装饰器给函数自动加上try except
    3D打印第二弹:狗牌
    【高等代数】06
    【高等代数】05
    沙箱-guacamole
    关于写博客的一点思考
    二阶段目标检测总结
    Waymo object detect 2D解决方案论文拓展
  • 原文地址:https://www.cnblogs.com/Amadeus/p/9861402.html
Copyright © 2011-2022 走看看