17.11.04

Posted *ZJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17.11.04相关的知识,希望对你有一定的参考价值。

  • 模拟考试
    • Prob.1(只AC了两组
    • 简化问题后:给出不超过20个50位以内的二进制数,问是否存在某些数的异或值等于输入的数。

      解法:

      1).暴力搜索每种情况(诶,我怎么连搜索都打错了???)

      2).for循环枚举每种选法,看是否存在一种选法的异或值等于目标值

      然后有一个小技巧:

      对于每个枚举到的集合S,不需要把每一个出现的元素再重新提出来相异或。因为是从小到大枚举,且最后的异或值与异或的顺序无关,所以只需要把S这个01串减小一个“1”(就去掉lowbit对应的那个“1”吧),这样得到S的一个子集S‘,然后O(1)转移就好了。

      但是这个复杂度是k(多组)*107级别的。

      大米兔大佬不甘忍受如此高的复杂度,于是他大发神威,写了一个线性基(咸腥鸡)来处理这个问题。于是这个就变成咸腥鸡裸题了,他说复杂度是小得多。(他科普了一下,真的学不来,就先记下来了。)

    • Prob.2(AC)Tarjan求强连通,裸裸裸
    • Prob.3(AC)最小生成树后,跑两个dfs求以每个点作为根时整棵树的代价,用到“转根”小技巧。

以上是关于17.11.04的主要内容,如果未能解决你的问题,请参考以下文章