• Assignment 1 :Percolation


    最初版本的实现十分容易,采用课程的提示,在UF中添加 virtual top site 和 virtual bottom site,并采用的是用一个boolean数组op跟踪一个site是否打开,如果未打开,则调用open函数。

    但是这样会出现 backwash 问题,即 percolates 后一个site实际并没有连接top却也显示full(原因是这个site通过virtual bottom site 连接 virtual top site),要解决这个问题,思路是full函数中怎样让一个site不去连接 virtual bottom site,最先想到的用 double UF,其中一个UF没有 virtual bottom site,检查full是调用这个UF。这样能通过所有test,但无法拿到 bonus 。

    想到用一个n*n的数组status追踪每个site的情况,情况分为(OPEN 0x01, TOP 0x02, BOTTOM 0x04, 这样设定是为了方便位运算)。这样一来,isOpen只要检查第一位是否为1,isFull只要检查root第二位是否为1,percolates只要检查virtual top site的root第二位和第三位是否均为1,。这个方法的难点在open,open一个site时,应该如何设定它的初值?open之后要union它四周已经open的site,这是该如何设定union之后root的状态?

  • 相关阅读:
    Fody is only supported on MSBuild 16 and above
    abp发送邮件AbpMailKit
    看一位老司机的博文,分享一下。
    nginx PC 移动配置
    微信开放平台登录
    flask 中 session的源码解析
    python mac环境搭建
    前端换mac可以参考搭一下简单的环境
    vue 导航钩子
    HTML5 History 模式
  • 原文地址:https://www.cnblogs.com/whuyt/p/4827795.html
Copyright © 2020-2023  润新知