首页 > 其他分享 >2023.4

2023.4

时间:2023-04-03 22:35:55浏览次数:48  
标签:子树加 交集 Alice 选择 2023.4 Bob 我们

1. 填数游戏

你是第一个.jpg

考虑性质 B,我们会发现无论 Alice 怎么选,Bob 只有两种选择:\(1,2,...,n-1,n\) 或者 \(2,3,...,n,1\)。

考虑 \(S_i\) 和 \(T_i\) 的交集,如果交集为空,则我们可以忽略;如果交集恰好为 \(1\),Alice 一定会去选这个交的,否则交集为 \(2\)。

设有 \(a\) 个交集为 \(1\) 的是交了 \(i\),\(b\) 个交集为 \(1\) 的是交了 \(i+1\),有 \(c\) 个交集为 \(2\)。

Alice 的任务其实是把 \(c\) 分配给 \(a,b\) 加上去,然后 Bob 选择其较小值。

我们此时容易 \(O(1)\) 计算出最优秀的结果。

考虑更一般的情况,我们希望沿用性质 \(B\)。首先,可以对 Bob 的选择集合做出一下的转化:

如果一个集合大小为 \(1\),则我们确定它就是选这个数 \(x\),则考虑 \(x\) 在其它集合中的出现,该集合只能选另外一个,递归做这个过程。

总之我们可以在 \(O(n)\) 的时间内消去这类只有一种选择的,现在每个位置都有两种选择。

把两个选择连边,则如果有一个环,我们可以暴力消去它,否则一定是若干个森林(由于无环)。

消环看上去是一个很困难的事情,但其实冷静思考并不是:一个连通块要么是树要么是基环树,不然就无解了。

基环树的话,环就直接套性质 B,然后环上的点等价于已经被占用了,因此剩下的部分也是方案唯一的,套用上面的化简过程。

树则比较麻烦。

最直接的想法是:我们对每条边,选深度比较大的那个作为真正的点,这样是合法的。

当然树根也是可以被占用的,这样相当于选一个点 \(u\),它开始向上的边全部往上推,这样就把选中的点空了出来(显然我们恰好空一个点)。

这是 Bob 的方案,考虑 Alice。

先来考虑限制 C:如果 Alice 拿到的数和 Bob 没有交那就无所谓,否则如果这个点是比较深的点,则相当于当且仅当 Bob 选择 \(u\) 子树外的点会匹配上;如果是浅的点,等价于 Bob 选择 \(u\) 子树内的点才会匹配上。

所以我们执行子树加 / 子树外+,在 dfn 序上差分做这个事情,最后序列的最小值就是这棵树的答案。

场上就想到这里,但是没有写完。

一般情况的话,Alice 相当于是多了一种情形:可以自己选择子树 + 或者子树外 +,然后让最小值最大。

看上去套个二分先,但其实发现没有什么更好的性质了。

如果两个点不是祖孙关系,则不会同时执行子树加,这个没有同时执行子树外加优秀。

所以执行子树加的是一条根链。

初始的时候,把所有人都设置成子树外加的形态,然后在树上 dfs,把当前点的子树外加改成子树加,这是 Alice 的一种方案,此时的最小值是 Bob 对应的结果。

因此我们要支持:区间加减,全局求 min,上线段树维护就好了,复杂度 \(O((n+m)\log)\)。

标签:子树加,交集,Alice,选择,2023.4,Bob,我们
From: https://www.cnblogs.com/Cry-For-theMoon/p/17284696.html

相关文章

  • 2023.4.3每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • day33(2023.4.2)
    1.UDP传递基本数据类型(创建服务端)2.UDP传递基本数据类型(创建客户端) 运行结果: 3.UDP传递自定义对象类型   运行结果: 4.反射小概念 5.创建一个Users类  通过getClass()方法  运行结果: 6.通过.class静态属性获取Class对象和通过Class类中......
  • 2023.4.2
    #include<stdio.h>#include<string.h>////intAdd(intx,inty)//{// intz=0;// z=x+y;// returnz;//}//intmain()//{// inta=20;// intb=5;// intsum=Add(a,b);// printf("%d\n",sum);// return0;//}//intmai......
  • 跨屏零代码saas建站平台2023.4.2发布更新
    跨屏零代码saas建站平台2023.4.2发布更新,主要更新了官网的UI,使其更加的简约,我们花了3年时间开发了这款零代码saas建站平台,然后正式运营以后,一直在致力于做简化工作,也就是化繁为简,不仅局限于官网的模板ui简化,以及用户的后台简化,注册登录、发布操作流程的简化,以及模板的简化。跨屏平......
  • day32(2023.4.1)
    1.一对多应答型服务器 随后开启多个客户端,运行结果:    2.一对多聊天服务应用 随后开启多个客户端,运行结果:    3.UDP通信入门案例(创建服务端)了解即可 4.UDP通信入门案例(创建客户端)了解即可 运行结果:  day32(2023.4.1)星期六......
  • 2023.4.1
    B-ProblemB.sophistry_2021CCPC新疆省赛(重现赛)@KFC_ovo(nowcoder.com)//当需要后边的信息时,就只能从后往前推 #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+10;//线性dplln,d,m;//发言n天lla[N];lldp[N];//dp[i]表......