zoukankan      html  css  js  c++  java
  • 字符串专题测试

    T1:

      如果两个串相同,那么就是一个串的每一位和另一串相同,用并查集维护这种限制关系,最后并查集的联通块个数就是可以随意选字符的位置数$(26^{cnt})$。

      优化的并查集:倍增并查集。像维护线段树一样,对于每次合并$[l1,r1]$,$[l2,r2]$,拆分为$2^j$,合并倍增节点$(l1,j)$,$(l2,j)$。最终把每个大块下传给其包含的小块节点。总结点数$N*log N$,总复杂度$O(Nlog^2N)$。

    T3:

      首先想乱选出$i$个集合的方案$g[i]=i^N$,其中不合法的就是有空集的方案。那么合法$f[i]=g[i]-sum limits_{j=1}^{i-1} g[j]*C_i^j $,这样得到的其实是$i$个集合的排列,最后还要分别除以$i!$求和。暴力是$O(N^2)$的。拆开式子$f[i]=i^N-sum limits_{j=1}^{i-1} frac{g[j]}{j!} *i! * frac{1}{(i-j)!}$,可以设$F[i]=frac{i^N-f[i]}{i!}$,那么$F[i]=sum limits_{j=1}^{i-1} frac{j^N-F[j]*j!}{j!} * frac{1}{(i-j)!}$,就可以用分治fft解决了。

    考前多项式这块欠的有点多,考场上也没有yy出来这个分治fft。这场考到2h的时候就很绝望了,T1发现打伪了就只有暴力,T3只会暴力,T2题目都没读懂。后面的时间一直想T1和T3,但是并没有什么进展。感觉当初学知识学得太慢了。

  • 相关阅读:
    android 设置状态栏与标题背景颜色一致
    Android 无标题、全屏设置
    android Activity绑定Service
    lua入门之四元表
    lua入门之三module
    lua入门之二table
    lua入门之一函数
    Cocos2dx 3.10版编译安卓报卷标错误
    js 创建、添加、删除元素节点 添加文本节点
    正则表达式
  • 原文地址:https://www.cnblogs.com/Duan-Yue/p/12112406.html
Copyright © 2011-2022 走看看