zoukankan      html  css  js  c++  java
  • CodeForces Round #580 (CF1205) 学习

    考场状况

    B题最小环写不清楚一直挂,还好先写了C题,由于不确定做法是否完善讨论很多类,又花了大量时间。

    比赛结束前半小时家人提醒我开D, 我说D肯定比C要难,半小时肯定做不完。(Flag)

    赛后学习,先想了想 D 怎么做菊花图,想到大步小步,一半边取小步 $1$, 另一半取大步 $leftlfloor{n-1over2} ight floor+1$, 然后搬到一般树上也可以这么干,找到重心排序切开就至少能剖出 $frac23$, 半小时过掉了。

    B. Shortest Cycle

    题意:给定 $60$ 元集合的 $n$ 个子集,若两子集交非空连边,求最小环。

    笔记:剔除空集后如果还剩余多于 $120$ 个集合,则必然存在三个集合交非空,答案必然为 $3$. 否则直接 Floyd 求最小环。注意最小环的贡献式是 $d_{k-1}(i, j)+w_{ik}+w_{jk}$.

    E. Expected Value Again

    题意:当字符集大小为 $k$ 时求 $n$ 位均匀随机字符串 $s$ 的非平凡前后缀个数平方期望。

    笔记:设 $f_i(s)=[s[:i]=s[-i:]]$. $s[:i]=s[-i:]$ 实际上限定了 $s$ 具有长度为 $n-i$ 的循环节。如果 $i=j$ 一定有 $E(f_i(s)f_j(s))=E(f_i(s))=k^{-i}$.

    当 $i e j$ 时,不妨设 $i < j$, 设 $i'=n-i$, $j'=n-j$. 建立一个 $i'$ 点环,若 $k+j' < n$, 连接 $k$ 与 $(k+j') mod i'$.

    当 $i'+j'le n$ 时显然有模 $(i', j')$ 的每个剩余类连成一个环。当 $i'+j' > n$ 时有 $n-j'$ 条边,因此连通块数为 $i'+j'-n$ 加上环数。模 $(i', j')$ 意义下,一个剩余类要是能形成环,一定是因为其最大数仍然小于 $n-j'$. 剩余类的最大数分别是 $i'-(i', j'), i'-(i', j')+1, ldots, i'-1$, 因而有 $max{n-i'-j'+(i', j'), 0}$ 个环,连通块数就是 $max{(i', j'), i'+j'-n}$.

    因此 $E(f_i(s)f_j(s))=k^{max{(i', j'), i'+j'-n}-n}$, 经检验,$i=j$ 时该式也成立。

    枚举 $(i', j')$ 和 $i'+j'$, 容斥求和。

  • 相关阅读:
    网络七层参考模型(OSI)
    TCP/IP体系结构
    VC调用外部程序接口
    处事八条
    HFC网络
    sql server 2005中的分区函数用法(partition by 字段) 
    Java实现的几个常用排序算法详细解读
    Java中读取字符文件类FileReader
    如何在Java中进行图片剪裁
    从零开始构建HTML 5 Web页面
  • 原文地址:https://www.cnblogs.com/nealchen/p/CF1205.html
Copyright © 2011-2022 走看看