• 联考Day 5


    A:遗忘之祭仪

    签到题
    每次一定是拿小矩形左上角去对
    如果冲突就挂了





    B:客星璀璨之夜

    考虑一个星撞向另一颗星的方案数有多少
    乘上距离就是这颗星撞向另一颗星的贡献
    最后除以所有的方案数就是期望
    (新套路get)
    考虑方案数怎么求
    定义dp[i][j]表示 从星A撞向星B 中间的反物质行星有i颗 在星B向后 反物质行星有j颗 的方案数
    考虑转移
    首先保证j这颗恒星不会被其它行星消耗掉 所以首先保证j这颗恒星右边的不会撞到它
    此时的转移系数为((2*j-1)*dp[i][j-1])
    即在右边的所有行星中挑一个并向任意一个方向运动
    注意j右边紧邻的只能向右
    所以有((2*j-1))中选法

    同理左边的转移一样((2*i-1)*dp[i-1][j])
    根据加法原理这两个加起来就是dp[i][j]
    而i左边的行星对i和j一定产生不了任何贡献
    所以这一部分的方案数最后一起乘就可以了

    当i等于0和j等于0时特殊计算
    i等于0时
    此时有两种可能:

    1. j中挑出一颗行星湮灭 方案数为((2*j-1)*dp[0][j-1])
    2. 将两颗星星直接相撞 那以后j中的行星无论如何撞都可以满足此时的要求了 方案数为(2^j*j!*dp[0][j-1])

    j等于0时
    方案数为((2*i-1)*dp[i-1][0])

    然后就可以转移了
    把dp值求出之后统计答案
    如果由星A撞向星B 且x[b]>x[a] 那么显然可以直接统计 乘上距离差就可以

    而如果由星A撞向星B 且x[b]<x[a]
    因为dp方程是由左撞向右方 所以直接统计显然不行
    发现显然从A撞向B的方案数 与从B右边的第一颗行星撞向A右边的第一颗恒星的方案数是相等的
    所以转换一下坐标就可以直接计算了

    最后除以所有的(2^n*n!)种方案 就是期望距离





    C:割海成路之日
    咕咕咕

    如初见 与初见
  • 相关阅读:
    python3笔记-列表
    python3笔记-字典
    MD侧滑
    SnackBar使用
    TextIInputLayout使用
    Toolbar与SearchView
    Palette使用
    TabLayout使用
    沉浸式-体验
    沉浸式-兼容优化
  • 原文地址:https://www.cnblogs.com/HISKrrr/p/13840365.html
Copyright © 2020-2023  润新知