• Wannafly Summer Camp Day5


    Rank Solved A B C D E F G H I J K
    40/113 2/11 Ø . . O Ø . . O Ø Ø .

    O: 当场通过

    Ø: 赛后通过

    .: 尚未通过

    A 矩阵乘法

    upsolved by chelly


    chelly's solution

    B 字符串的幂

    unsolved


    C 生命游戏

    unsolved


    D 数格点

    unsolved


    E 数据排序

    upsolved by chelly


    chelly's solution

    dp[S]表示已经取了S这个集合里的元素作为最大的|S|个评分,然后枚举子集表示下一次取的那些相同评分的元素
    时间复杂度(O(n imes 3^n))

    F 平衡二叉树

    solved by chelly


    chelly's solution

    f(i)和g(i)分别表示高度为i的子树,高度差不超过d的情况下,子树的点数最大值/最小值
    f(i)显然是(2^i-1),g(i)可以通过递推得到

    G 数组合并

    unsolved


    H 卡牌游戏

    solved by ch


    ch's solution

    I 游戏

    upsolved by chelly


    chelly's solution

    首先最暴力的思路就是一个带删除的并查集,但是考虑一个度数很大的点不断的上下线,如果每次都去遍历它的相邻点去合并显然会超时。
    考虑big small
    对于度数>=sqrt(m)的点,我们称其为大点,否则我们称其为小点
    对于小点,我们可以遍历它的所有相邻节点,对于大点,我们就需要考虑考虑如何处理了
    显然大点的数量不会超过sqrt(m),对于每个大点,我们去用队列记录它在离线时候收到的组队请求
    对于一个新上线的大点,首先我们将其恢复到它上次离线时候的集合,然后遍历它收到的组队请求进行合并
    这样复杂度就是(O(m^{frac{3}{2}}+n))

    J 魔法阵

    upsolved by chelly


    先二分答案r变成一个判定问题,现在问题变成了有三个半径都是r的圆A,B,C,能否从每个圆里面各点一个点,使得这三个点形成一个等边三角形
    我们可以以A为中心,将B转动60°到B',判断以B'为圆心,2r为半径的圆与以C为圆心,r为半径的圆是否有重叠部分即可
    注意旋转60°有两个方向

    K 排队

    unsolved


    Replay

    本场由chelly、ch线下打的。
    开场chelly过了F题的签到,然后发现其它题不太可做的样子……?ch则一直在搞H,但搞来搞去发现样例搞不出来,卡了一下午……后来得知题面叙述有问题……也是很无奈

  • 相关阅读:
    操作系统读书笔记01
    k-mean鸢尾花分类
    利用numpy完成波士顿房价预测任务
    软件过程管理读书笔记01
    软件测试读书笔记01
    数据分析与数据挖掘
    oracle 导出导入操作
    oracle降低高水位操作
    dubbo工程刚初始化报错明明找得到jar包还是报错
    get请求参数中带有url
  • 原文地址:https://www.cnblogs.com/Amadeus/p/9465297.html
Copyright © 2020-2023  润新知