• 2013第二场多校



    多校第二场:
    1002 http://acm.hdu.edu.cn/showproblem.php?pid=4612
    (1)、求双连通分支。
    (2)、求树的直径。

    1009 http://acm.hdu.edu.cn/showproblem.php?pid=4619
    (0)、因为判断两张卡牌是否相交那里写错了,导致浪费了近一个小时的时间。本场比赛第一失误。可以早一点找FQ帮忙,早一点确定问题出现的地方。其实跟自己不熟悉HK算法也有很大关系,不然也不会一个模板一个模板地去试。
    (1)、二分图匹配。求最小点覆盖。

    1006 http://acm.hdu.edu.cn/showproblem.php?pid=4616
    (0)、不算难的树形DP,比赛的时候因为没有真正想好问题,就去敲代码,导致卡题,本场比赛第二失误。这也是我的一大毛病,今天又深受其害,还是太心急了。
    (1)、设dp[n][2][4]的状态。其中dp[u][0][j]表示以u为起点,当前已中j个trap(包括当前点的),然后向子节点的方向行走能得到的最大价值。dp[u][1][j]表示从某个子
        节点,走到u(u为终点),当前已中j个trap(包括当前点的),能够得到的最大价值。
    (2)、某个节点在一条最优路径中只有三种情况,终点、起点,中间节点。这些结果都可以由dp状态得到,最后枚举一下必经节点u,得到最优解。

    1004 http://acm.hdu.edu.cn/showproblem.php?pid=4614
    (0)、写了近两个小时的线段树,还是对着数据跑,现场还不知道能不能调出来。做题过程中出现三个bug:
        1.分析题目的时候没有想到起始位置也是要查找的,分析阶段出现漏洞。
        2.写代码的时候,没有参照事先写好的代码来,思维跟不上,写搜索下标时写错对象了。
        3.搜索下标的函数中,忘了给线段树进行pushup和pushdown的操作,这是很容易出错的地方。
    (1)、维护这样一棵线段树,实现四个操作:区间置1,区间置0、区间求和,查找第x个为0的位置。用lazy数组保存节点当前所处状态,-1表示子节点更新完成,0表示子节点需要
           全部置0,1表示子节点全部置1。线段树的实现还是比较容易的,但是细节需要把握好。

    1008 http://acm.hdu.edu.cn/showproblem.php?pid=4618 乱搞题
    (0)、比赛的时候没有去想,是因为没有仔细读题,只是大概看了下题目没什么想法。以为求的是一个最大矩形而不算正方形,而且当时心情比较紧张,不怎么想搞这种没把握
        的题。赛后做了一个小时,不知道真正比赛要花多少时间来做。
    (1)、其实最暴力的想法就算枚举点,边长,然后判断一下是否合法就行。按照这个思路想,其实就可以先预处理出以点(i,j)结尾,长度为k时,垂直方向和水平方向是否为一个
        回文串(n^3)。现在再去枚举k,那么,刚刚预处理出来的条件就可以化成2维。其实就是这样一个问题:给你一个矩阵,矩阵只有0和1,求是否存在某一点(i,j)使得以该
        点结尾,水平方向上连续的1和垂直方向上连续的1的个数都大于k。这个问题可以在O(n^2)内解决,所以总体复杂度还是O(n^3)。
    (2)、按照刚刚的思路,写完代码,发现MLE了。之前没有算空间复杂度,结果直接给卡了。经过半个小时的优化,终于过了...

  • 相关阅读:
    Centos7安装Python3
    mysql+centos7+主从复制
    Python开发之virtualenv和virtualenvwrapper详解
    Linux基础系统优化(二)
    Linux基础系统优化(一)
    Windows 10版本区别
    HTML5常用的语义化标签
    关于efk多服务器多日志合并收集
    离线状态安装docker容器
    Docker部署jenkins+sonar+gitlab代码检测系统
  • 原文地址:https://www.cnblogs.com/CooCoo/p/3235184.html
Copyright © 2020-2023  润新知