zoukankan      html  css  js  c++  java
  • 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,但搞来搞去发现样例搞不出来,卡了一下午……后来得知题面叙述有问题……也是很无奈

  • 相关阅读:
    MSF进程迁移
    中间件漏洞之Nginx
    MSF常用payload生成
    消息中间件的对比
    Jetty简介
    Java中集合转数组,数组转集合
    SpringCloud简介
    码云上添加ssh密匙
    在Dubbo中使用高效的Java序列化(Kryo和FST)
    dubbo-负载均衡
  • 原文地址:https://www.cnblogs.com/Amadeus/p/9465297.html
Copyright © 2011-2022 走看看