• 数学专题测试1


    A. 解方程

      容易发现第二个限制挺没用的,直接减去就行。

      对于第一个限制,发现没办法直接做,考虑容斥。设$f_s$表示$s$集合中的数不满足限制的方案数,随便容斥一下:

      $$ans=sumlimits-1^{|s|}*f_s$$

      可以发现,实际上$f_s$就是一个组合数,可以用挡板法得到,发现模数不保证为质数,exLucas直接算即可。

    B. 宇宙序列

      容易发现,题中所给的式子就是一个异或卷积,我没发现,所以:$a_i=a_{i-1}*a_1$。

      而异或卷积是满足结合率的,所以:$a_{2*i}=a_i*a_i$。

      然后直接倍增求这个东西,用fwt优化就可以做到$O(2^n*n*p)$。

      然后由于异或卷积有一些优美的性质,所以可以将对应位置点值相加,最后统一IDFT回去也是正确的。

      于是原问题转化成了这样:给定一些数$x$,对于每个$x$,求出$sumlimits_{i=0}^{p}x^{2^{i}}$。

      这题模数非常小,底数只有10007种,可以考虑暴力预处理。

      考虑倍增,令$f_{x,i}=sumlimits_{j=0}^{2^{i}-1}x^{2^{j}}$,有转移:

      $$f_{x,i}=f_{x,i-1}+f_{x^{2^{2^{i-1}}},i-1}$$

      所以暴力对所有$x$预处理出来倍增数组,对于DFT之后的$a_1$进行倍增求出和然后IDFT回去即可。

      加优化可以做到$O(n*2^n+mod*logmod)$。

    C. exp

      又是神仙期望dp。。

      首先根据传统,断环成链。考虑整个序列,最后一个变为X的贡献一定是$frac {n-1}{2}$,于是就转化为了序列上的问题。

      对于区间$[l,r]$,如果中间存在一个点$k$为'.',那么区间$[l,k]$,$[k+1,r]$是互不干涉的,于是可以考虑转移。

      设$g_{l,r}$表示区间$[l,r]$除了r都已经被变为X,且r为'.'的概率,$f_{l,r}$表示期望,注意此处的期望实际上是总和,并未乘概率。$p(l,r,k)$表示区间$[l,r]$除了r最后一个变为X的位置是$k$,且$r$为'.'的概率,$lc$为$[l,k]$中'.'的个数,$rc$为$[k+1,r]$中'.'的个数。那么有:

      $$p(l,r,k)=C_{lc+rc-2}^{lc-1}(frac{k-l+1}{r-l+1})^{lc}(frac{r-k}{r-l+1})^{rc-1}*p_{l,k}*p_{k+1,r}$$

      实际上就是将两个区间合并起来,并且用方案总数乘以合法概率。

      那么:

      $$g_{l,r}=sumlimits_{i=l}^{r-1}p(l,r,k)$$

      $$f_{l,r}=frac{1}{g_{l,r}}sumlimits_{i=l}^{r-1}p(l,r,i)(f_{l,i}+f_{i+1,r}+frac{k-i}{2})$$

      实际上就是对于所有部分的期望做了加权平均。

      统计答案只要枚举最后一个端点r,累加贡献:$ans=sumlimits_{i=1}^{n}f_{i,i+n-1}*g_{i,i+n-1}$

      最后加上最后一步的贡献,即$frac{n-1}{2}$。

  • 相关阅读:
    最小费用最大流
    bzoj1070[SCOI2007]修车
    bzoj1877[SDOI2009]晨跑
    bzoj2879[NOI2012]美食节
    bzoj1834[ZJOI2010]网络扩容
    Tic-Tac-Toe-(暴力模拟)
    javascript慕课入门
    hdu2586-How far away ?-(最近公共祖先-Tarjan离线算法)
    CSS初识盒子
    CF1047C-Enlarge GCD-(欧拉筛+gcd+唯一分解定理)
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12134600.html
Copyright © 2020-2023  润新知