• 【CSP-S2019模拟】【Comet OJ 模拟赛Day2T3】11.10比赛总结


    最后几套模拟赛了

    比赛思路

    传送门

    • T1(赛博朋克酒保行动):随便算一算
    • T2(模拟旅行):刚开始觉得这题很神仙。但是数据那么大,肯定是直接最短路的。所以不妨思考一下怎么直接最短路。然后我想到直接以每一个关键点作为起点,一起最短路。但是可能会有自己到自己的情况。那么再记一个次短路不就好了(上了发SPFA)。
    • T3(迷雾华光):离线不是裸的树上莫队吗。

    赛后消化

    • T2SPFA能获得0-20分不等的好成绩。众所周知,SPFA是O(nm)的算法。
    • 改成Dij啊啊啊啊啊(在线学习Dij)
    • T3对于序列问题可以直接分块。同理,对于树上问题也可以树分块(裸题??)
    • T3还是比较难打的。

    Comet OJ 模拟赛 Day2

    • 没有打(真香)
    • 主要记录一下T3。
    • 题意就是在一颗树上每一次修改一个节点的二进制状态,求与它and为0的相邻节点的个数。
    • 首先只用记录每一个点的儿子的贡献。改的时候处理父亲。
    • O(2m)修改,O(1)查询
    • 或O(2m)查询,O(1)修改。
    • 平衡规划一下。改成O(2m/2)修改,O(2m/2)查询。
    • 对于一个状态,修改时前一半转移到它的父亲集合,后一半保留在原地。查询时前一半保留,后一半找它的子集。
    • 注意到如果儿子个数很少的话,其实是不如直接暴力的。对于d<=2m/2的暴力。
    • 这样就可以解决空间的问题。
    • 时间空间O(n*2m/2)

    总结

    • 这辈子再也不打SPFA了(能dij为什么要SPFA)。
    • 分块的题目我还是很少直接想出来。。。
  • 相关阅读:
    关于PTA平台上使用python2/3书写代码误判问题
    随笔小记--乔帮主传
    随笔小记--读李安传
    Git与GitHub的简单了解(3)
    Git与GitHub的简单了解(2)
    Git与GitHub的简单了解(1)
    学习SFrame,根据GraphLab库
    结课:应用实例--照片字符识别 (photo OCR)
    大数据下的机器学习
    Java8之Stream用法
  • 原文地址:https://www.cnblogs.com/DeepThinking/p/13090913.html
Copyright © 2020-2023  润新知