首页 > 其他分享 >9.2 模拟赛

9.2 模拟赛

时间:2024-09-02 17:16:16浏览次数:12  
标签:matrix 减少 dfrac dfrac1 9.2 2n 数量 模拟

还没写完

A. 岛屿

题意简述:有 \(2n\) 个岛。给定 \(x, y\),其中 \(2x+y=n\)。已知岛 \(i, i+n\) 之间有连边。\([1, x] \cup [n+1,2n-x]\) 的岛是红色,其余是白色。现在要添加 \(n\) 条边,每条边的两个端点的颜色不能相同。求图中的期望连通块数量。

若我们将 \([1, n]\) 和 \([n + 1, 2n]\) 的岛分别看作一组,那么这两组的前 \(x\) 个元素形如 \(1-1\),中间 \(y\) 个形如 \(0-1\),后 \(x\) 个形如 \(0-0\)。

\[1,1,1,1,0,0,0,0,0,0\\ 1,1,1,1,1,1,0,0,0,0 \]

比如这个例子中 \(x = 4, y = 2\)。

因为两组中的对应位置间初始已经有连边,即每个点的度数均为 \(1\)。此时要新加 \(n\) 条边,且边的端点互不相同,也就是说新图中每个点的度数都应该增加 \(1\),即为 \(2\)。而如果一个连通块中所有点的度数均为 \(2\) 则这个连通块是一个环。问题变成求图中环的期望数量。

设计 DP 状态 \(f(A, B, C)\) 表示有 \(A\) 个 \(1-1\),\(B\) 个 \(0-0\),\(C\) 个 \(0-1\) 的期望环的数量。那么答案为 \(f(x, x, y)\)。

考虑转移。

  • \(C = 0\):

    即只有 \(A\) 个 \(1-1\) 和 \(B\) 个 \(0-0\)。因为能加的边的两端点的颜色不能相同,所以不能在 \(A, B\) 内部连边,即要从 \(A, B\) 中分别选一条边相连。而连接后 \(1-1-0-0\) 可以视作 \(1-0\) 边,而 \(1-1,0-0\) 边的数量分别减少。即 \(f(A, B, 0) = f(A - 1, B - 1, 1)\)。

  • \(C > 0\):

    我们考虑分析第一条 \(0-1\) 边。

    • 如果连自环,即在这两个点间再加一条边,那么环数会增加 \(1\),\(0-1\) 边数量会减少 \(1\)。概率为 \(\dfrac 1{A+B+C}\)。

    • 如果这条 \(0-1\) 边与另一条 \(0-1\) 边相连,那么 \(0-1-0-1\) 将合并成 \(0-1\),即 \(0-1\) 边数量减少 \(1\)。概率为 \(\dfrac{C-1}{A+B+C}\)。

    • 如果这条 \(0-1\) 边的 \(0\) 与另一条 \(1-1\) 边的 \(1\) 相连,那么 \(1-0-1-1\) 可以看作 \(1-1\)。\(1-1\) 边数量减少 \(1\) 又增加 \(1\) 相当于不变,而 \(0-1\) 边的数量减少 \(1\)。概率为 \(\dfrac A{A+B+C}\)。

    • 如果这条 \(0-1\) 边的 \(1\) 与另一条 \(0-0\) 边的 \(0\) 相连,与上面类似,\(0-0\) 边数量减少 \(1\) 又增加 \(1\) 相当于不变,而 \(0-1\) 边的数量减少 \(1\)。概率为 \(\dfrac B{A+B+C}\)。

    综上 \(f(A, B, C) = \dfrac1{A+B+C} (f(A,B,C-1)+1) + \dfrac{C-1}{A+B+C}f(A,B,C-1) + \dfrac A{A+B+C}f(A,B,C-1) + \dfrac B{A+B+C}f(A,B,C-1)\)。化简后是 \(f(A,B,C) = f(A,B,C-1)+\dfrac1{A+B+C}\)。

综上:

\[f(A,B,C) = \left\{ \begin{matrix} f(A-1,B-1,1) &,C=0 \\ f(A , B, C - 1) + \dfrac1{A+B+C} &,C \ne 0\end{matrix}\right. \]

你发现从 \(f(x,x,y)\) 开始 DP 能用到的 DP 状态都满足 \(A = B\),所以可以进一步优化成二维:

\[f(A,C) = \left\{ \begin{matrix} f(A-1,1) &,C=0 \\ f(A, C - 1) + \dfrac1{2A+C} &,C \ne 0\end{matrix}\right. \]

标签:matrix,减少,dfrac,dfrac1,9.2,2n,数量,模拟
From: https://www.cnblogs.com/2huk/p/18393093

相关文章

  • 云原生周刊:LitmusChaos 审计完成|2024.9.2
    开源项目推荐GardenerGardener实现了Kubernetes集群的自动化管理和操作服务,并提供了一个经过完全验证的可扩展性框架,可以调整以适应任何编程云或基础设施提供商。GrafanaMimirGrafanaMimir为Prometheus提供了横向扩展、高可用、多租户的长期存储解决方案。Terragrunt......
  • 模拟信号采集卡设计方案:FMC210-1路1Gsps AD、1路2.5Gsps DA的FMC子卡 信号采集卡
    FMC210-1路1GspsAD、1路2.5GspsDA的FMC子卡  一、板卡概述   FMC-1AD2DA是北京太速科技自主研发的一款1路1GAD采集、1路2.5GDA回放的FMC子卡。板卡采用标准FMC子卡架构,可方便的与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集、雷达系统测......
  • android 模拟器 内存修改, 用winshark 抓包,修改数据包
    1.其实我们自己也可以开发软件,对系统线性内存地址做归纳,2.对所有内存系统地址的值,做遍历。(很快,大概32GB2s~5s),如果能找到进程对应内存堆栈,大概100ms就可以查找完毕。参考摆脱八门神器,继续利用CE在安卓游戏做上帝https://zhuanlan.zhihu.com/p/470805411不需要root在Win......
  • 力扣237题详解:删除链表中的节点的模拟面试问答
    在本篇文章中,我们将详细解读力扣第237题“删除链表中的节点”。通过学习本篇文章,读者将掌握如何在单链表中删除给定的节点,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。问题描述力扣第237题“删除链表中的节点”描述如下:请编写一个函......
  • 力扣230题详解:二叉搜索树中第K小的元素的多种解法与模拟面试问答
    在本篇文章中,我们将详细解读力扣第230题“二叉搜索树中第K小的元素”。通过学习本篇文章,读者将掌握如何在二叉搜索树中高效地查找第K小的元素,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。问题描述力扣第230题“二叉搜索树中第K小的元素......
  • 模拟实现strlen函数(C语言)
    #include<stdio.h>//strlen实现intStrlen(chararr[]){ inti=0; intnum=0;//长度的数值 for(i=0;arr[i]!='\0';i++)//当arr[i]不为\0时继续 { num++;//长度增加 } returnnum;//返回长度的值}intmain(){ //创建一个数组 chararr[100]=......
  • VirtualSurveyor9.2.0 无人机摄影测量数据处理软件
    VirtualSurveyor9.2中文版是功能强大的无人机测绘软件,使用旨在为用户提供完整的地理空间数据可视化和分析功能,带来提高的生产力,功能全面而强大,在无人机到CAD模型的过程中,使用VirtualSurveyor软件来拆卸输送机、测量体积并绘制断裂线!从您的无人机数据高效地创建调查,创建测量,表......
  • 基于Java Swing 的操作系统课程设计- 模拟文件管理项目(可视化
    一、需求分析......
  • C++奇迹之旅:深度解析list的模拟实现
    文章目录......
  • 【题解】Solution Set - NOIP2024模拟赛4
    【题解】SolutionSet-NOIP2024模拟赛4https://www.becoder.com.cn/contest/5501T2沉默乐团https://www.becoder.com.cn/submission/2593352T3深黯「军团」记录一下考场思路:首先对于长度为\(n\)所有排列,按顺序求出她的逆序对数量。然后找到了规律。后面基于此,写出......