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

  • 相关阅读:
    shell编程-基础
    磁盘管理-下部
    磁盘管理-中部
    磁盘管理-上部
    用户的管理
    docker之阿里云centos 7.x 启动容器报错处理办法
    IDEA之整合SVN遇到的坑(一)
    springboot之通过idea打jar包并运行
    SpringBoot整合定时任务和异步任务处理
    Microsoft SQL Server 2012安装说明
  • 原文地址:https://www.cnblogs.com/Amadeus/p/9465297.html
Copyright © 2011-2022 走看看