【题解】CCPC Wannafly Camp Day3

A、黑色气球

  • 签到题

B、小吨的点分治

  • 假设我们已经对一棵树进行了点分治得到对应的点分树。如果我 们删去原树中的一条边,把得到的两个连通块中的点分别称为黑点和白点。对于点分树中的每个白点(黑点),我们找到它的祖先中最近的一个白点(黑点)作为它新的父亲,这样就能得到两棵全由白点组成的树和全由黑点组成的树(因为有且仅有一个白点和黑点找不到同色的祖先),它们分别为原树切分得到的两棵树的点分树。
  • 反过来再考虑,如果我们把两棵树通过一条边 连接起来,我们怎样把原有的两棵点分树合并起来,并且保持原本点分树中的祖先后代关系呢?可以发现,我们只要把 到所在点分树根节点的路径以及 到所在点分树根节点的路径按任意顺序归并起来即可。
    考虑树形DP。之前的结论意味着,我们只需要关心树的根节点在点分树中的深度。因此设表示对的子树进行点分治,并且在点分树中的深度为的方案数。把的儿子的DP数组合并上来时就有
    直接实现是的,预处理的后缀和就不需要枚举了。每次合并的复杂度是两棵子树大小的乘积,因此最终的时间复杂度为

C、无向图定向

  • Easy-3
  • 答案 = 最小染色数 -

D、求和

先进行一些化简。



那么

E、棋技哥

  • 搞你一波心态!

F、社团管理

  • 决策单调性
  • 类似整体二分转移

G、火山哥周游世界

  • 考虑一下虚树和最远点?

H、火山哥的序列

  • 我们从大到小考虑每个数 考虑每个数在什么时候能作为最大的
  • 首先找到是这个数的所有倍数的数,假设位置是,那么显然还剩着(即),剩着,还剩着 (即),这些都是可能的
  • 考虑一下我们实际上每次相当于删一个区间状物
  • 用一个线段树维护每个点为左端点的时候最远删到了哪,以及还剩多少个区间没有被删即可。

I、N门问题

  • 贪心地让每一步中正确的门的概率最小、每次打开概率最大的门、每次打开概率最小的门,这些策略都是错误的,枚举一些N=的情况大概可以感受到
  • 事实上,通过归纳法可以证明,无论打开了哪扇门,A选择的那扇门在门打开之后都会变成全场唯一概率最小的门。
  • 通过这一结论我们可以把问题转成类似一个序列操作问题:
  • 一开始有个球一起放在序列头,有一个是正确球。
  • 每次从序列头的所有球中随机抽一个,然后可以丢弃剩下球中不是正确球的任意一个,然后把他抽的球单独地放在序列末尾
  • 可以感受到,当足够大时,一定可以通过控奇偶性让必败(这也可以坑到只观察序列前三项而认为序列单调递增趋于的选手)
  • 然后可以根据这个写一个表示剩个球,第一堆有个球,正确球在位置,这种情况下获胜的概率 发现当的时候就有让必败的策略了
  • 所以其实提前算完了小数据,大数据直接输出就行
  • 于是又在外边套了个无聊的数论模型

    J、简单字符串

  • 考虑一下我们肯定会切在Lyndon分解上

  • 对于字符串,如果的最小后缀是他本身,那么串。
  • 串等价于本身是其循环移位中最小的一个

我们可以将任意串划分成,其中都是串,这一形式被称为串划分

存在性:初始时每段一个字符。不断地将相邻两段合并。
唯一性:若有两种方案,取第一次不同的位置,设,令

全部评论
G题不是换根DP吗? 和虚树有什么关系吗?
点赞 回复 分享
发布于 2020-01-22 18:19
我太菜了,E题不懂😭
点赞 回复 分享
发布于 2020-01-22 18:33
求一个大佬对E只用判第一个字符做个证明
点赞 回复 分享
发布于 2020-01-22 19:31
c题染色是怎么染呀,没看懂QAQ
点赞 回复 分享
发布于 2020-01-24 13:00

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务