首页 > 其他分享 >[ABC313F] Flip Machines

[ABC313F] Flip Machines

时间:2023-08-07 11:00:26浏览次数:44  
标签:ABC313F 机器 卡片 覆盖 dfrac Flip dp 集合 Machines

一种很新的折半/根号分治。

手玩一下可以证明一个机器集合 \(S\) 的期望,先把 \(S\) 中 \(x=y\) 的机器对应的卡片翻好面,对于剩下的机器,如果一张卡片被至少一个机器覆盖过(即 \(x=i\) 或 \(y=i\)),那么它的期望是 \(\dfrac{a+b}{2}\),否则就是 \(a\)。

首先把 \(x_i=y_i\) 的机器处理掉,如果 \(a_{x_i}<b_{x_i}\),那就直接交换。然后就可以不管这些东西了。毕竟再翻只会使期望变小。

现在只考虑 \(x\not =y\) 的机器。

将 \(a_i\ge b_i\) 的卡片记为集合 \(P\),剩下的为 \(Q\)。覆盖一张卡的贡献是 \(\dfrac{b_i-a_i}{2}\)。

首先有一个观察:

  • 覆盖 \(Q\) 中点优于覆盖 \(P\) 中点。

  • 对于 \(x_i\in P,y_i\in P\),这个机器永远不用。

  • 对于 \(x_i\in Q,y_i\in Q\),这个机器必然使用。(这里官方题解好像写错了)

下面将 \(x\in Q,y\in P\) 的机器交换 \(x,y\),变为 \(x\in P,y\in Q\)。

接下来介绍两种做法:

\(1.\)

暴力枚举 \(P\) 中被覆盖的点的集合 \(S\),因为覆盖 \(Q\) 中的点优于覆盖 \(P\) 中的点,所以所有 \(x\in S,y\in Q\) 的机器必选。

复杂度 \(O(m+2^{|P|}n)\)。

\(2.\)

进行 \(dp\),记 \(dp[i][j]\) 为处理完 \(P\) 中前 \(i\) 个点,当前 \(Q\) 中选的集合为 \(j\) 时,\(P\) 中已选的点的最大值

同上,可以预处理 \(P\) 中每个点作为机器的 \(x\) 时对应的 \(y\) 的集合,只要选了这个点,必然覆盖所有的 \(y\)。

然后 \(dp\) 完以后加上 \(j\) 中点的贡献就行了。

复杂度 \(O(m+2^{|Q|}n)\)。

我们发现 \(|P|+|Q|=n\),因此 \(\min(|P|,|Q|)\le \dfrac{n}{2}\),根据两个集合的大小选择做法就可以了。

标签:ABC313F,机器,卡片,覆盖,dfrac,Flip,dp,集合,Machines
From: https://www.cnblogs.com/jimmywang/p/17610869.html

相关文章

  • ARC134F Flipping Coins
    pb讲课没讲的题,感觉很牛逼啊!但不是牛逼在多项式,因为多项式大家应该都会。考虑从前往后扫的过程,只要有正面就翻成反面,所以最后只有可能是当\(p_i<i\)且\(i\)没有被翻面时才对\(k\)有贡献。那么考虑一条链\(1\to2\to\cdots\tom\),并且\(\forall1\lei<m,p_i=i+1\),那......
  • LeetCode 519. Random Flip Matrix 哈希Map
    Thereisanmxnbinarygridmatrixwithallthevaluesset0initially.Designanalgorithmtorandomlypickanindex(i,j)wherematrix[i][j]==0andflipsitto1.Alltheindices(i,j)wherematrix[i][j]==0shouldbeequallylikelytobereturne......
  • 学习AdapterViewFlipper 图片、文字 轮播动画控件
    1\.问题/坑点1.1item宽高不生效问题需要注意的是,AdapterViewFlipper在布局时,宽高一定要用match_parent或者具体dp值。如果宽、高中使用了wrap_content时,会导致AdapterViewFlipper容器的宽高,最终变成第一个item的宽高。即使后续item的宽高超过第一个item,也不会生效,内容显......
  • 【每日一题】Problem 327A - Flipping Game
    原题解决思路计算数字"1"的最大数目,可以转换成计算数组最大和,即求\(maxSum(oldArraySum-(1\rightarrow0)+(0\rightarrow1))\RightarrowoldArraySum+maxSum(flipSum)\)误区注意:题目要求必须执行一次,因此起始值不是0而是-1#include<bits/stdc++.h>intm......
  • Flip-Flop Hardening and Selection for Soft Error and Delay Fault Resilience
    Flip-FlopHardeningandSelectionforSoftErrorandDelayFaultResilience​​https://ieeexplore.ieee.org/document/5372275Thetraditionaltestmodelofgo/no-gotestingbeingquestionedbyincreasingdelayfaultmanifestationshasbecomeevenfurtherc......
  • POJ 1753 Flip Game(枚举+递归)
    传送门思路是别人的,自己理解了半天,真是渣渣。对于自己,路还长,年轻人。对任意一个格子来说,翻动偶数次等于没翻,翻动奇数次等于翻一次,所以只需考虑翻一次的情况。一共16个格子,每个格子只有翻和不翻,所以最多16步,最少0步,题目要求最少的步数,所以0——>16枚举,看哪一步先成功就是最优解。使......
  • AtCoder Beginner Contest 200 F Minflip Summation
    洛谷传送门AtCoder传送门显然的策略:选择全部\(0\)段变成\(1\),或选择全部\(1\)段变成\(0\)。归纳可得一般性的结论:设字符串中\(s_i\nes_{i+1}\)的位置数为\(k\),答案为\(\left\lceil\frac{k}{2}\right\rceil\)。因为在模意义下不能上取整,考虑记\(k\)的奇偶性(这样......
  • UE5 材质 Flipbook火焰特效
    原理因为游戏为了保证舒适的帧数,通常不能临时计算特效,所以一般是提前将动画做成单独的帧,最后渲染至纹理流程UE5提供的FlipBook节点原理提供uv坐标,time节点,指定行列即可实现FLipBook实现使用的flipbook纹理有五行五列,因此提供一个float=5的节点连接到FlipBook的"......
  • chatgpt代写---通过王者荣耀学习thrice,impact,flip,pond这四个单词
    在《王者荣耀》中,每个英雄都有着各自独特的技能和特点,而其中的四位英雄——徐晃、公孙离、赵云和李元芳,则最能代表这四个单词:thrice、impact、flip和pond。徐晃是一个较为偏向防御的坦克英雄,在团队战斗中具有强大的生存能力和控制能力。他的技能“三段斩”可以对敌方发起连续攻击......
  • 王者荣耀甄姬英雄技能中的英语单词-thrice,impact,flip,pond,四个单词就能解释这个英
    王者荣耀最近凑到100个英雄了,我最常用的法师是甄姬。1、凝泪成冰:被动:每次技能伤害都会为目标叠加印记,当印记叠满三层时目标将会被冰冻并造成350(+52%法术加成)点法术伤害(该效果5秒内对同一目标只会生效一次)。2、泪如泉涌:甄姬召唤水柱冲出地面,对接触的敌人造成500/590/680/770/86......