zoukankan      html  css  js  c++  java
  • 6.24赛后总结

    6.24模拟赛赛后总结

    赛时历程

    读题的感觉有了。七点二十读完题目,然后开始敲T1的暴力。

    敲T1的暴力经历了一个小小的写假的过程,不过问题不大,七点五十得到10分(10分80行,,,)

    七点五十到八点想了想T2的暴力,感觉这题有些不可做。

    八点开T3暴力,先打了全排列,八点十几分打完。

    这个时候想着大概有22分了。

    然后就什么都不会了,没错,中间还试图挣扎,但无奈太弱了啊~~。

    最后5分钟好奇的测了测T1的样例2,竟然错了,还好是小问题,不然就抱玲了——

    赛后发现

    22分都能挂成10分。

    1 T3 抱玲了,如果不是检查了T1,就全抱玲了,挂掉的原因是搞排列之前没有排序。太蠢了。

    2 看上去去年的选手打的也不是很高。大概是这套题区分度不行,部分分都和正解的深度差不多。

    技术总结

    T1

    ​ 这个要讲有点麻烦。题目问的是 对于每一个合法的染色状态(c),问 (sum_c|S(c)|^k=sum_c(sumlimits_{i=1}^m[iin S(c)])^k) 首先是关于(k=1) 的树形DP,式子转化之后变成了求这样的式子, (sumlimits_{i=1}^msum_c[iin S(c)]) 即对于每一个颜色,考虑有哪些状态它出现在了关键点S中,考虑(g[i]=sum_c[iin S(c)]),显然对于每一个 (i) ,这个 (g) 都是相等的,因为每个颜色并没有什么与众不同的特质,所以不妨来试着求 (g[1]), 直接求,难!正难则反,考虑完全不让这些点选择一个颜色,然后用总的方案数减去就好了,考虑树形DP,(f[i][0/1])表示这个点选或者不选择颜色1的子树下的方案数(不包含自己),那么(f[x][0]=prod_{yin son[x]}f[y][0]*(m-2)+f[y][1],f[x][1]=prod_{yin son[x]}f[y][0]*(m-1)),最后我们的(g[1]=(m-1)^{n-1}*m-f[1][0]*(m-1)-f[1][1]).

    这个g[1]乘m就是我们的最终答案。然后考虑对原式子做转化,考虑把那个k次方给展开成斯特林的样子,则(sum_csumlimits_{i=0}^kS(k,i)*C(|S(c)|,i)*i!=sumlimits_{i=0}^kS(k,i)*i!sum_cC(|S(c)|,i)) ,然后,再考虑(g[i]=C(|S(c)|,i)),这个东西就是“在所有的合法染色中选择i个颜色来放入关键点的方案”,它等价于“对于所有的由(i)个颜色的组成的集合T,(Tsubseteq S(c)) 的方案”,我们考虑(h[i])为任意(i)个颜色组成的集合能够被(S(c)) 包含的方案,那么(g[i]=C(m,i)*h[i]),然后我们惊奇的发现,求(h[1])的话问题就是任意一个颜色,有哪些状态使得它出现在看关键点S中,这个是(k=1)的情况里已经考虑过做法的,所以可以考虑用类似的方法来求所有(h[i]),仍然是树形DP,(f[x][0/1])则表示 (x) 选择的颜色是否是 (i) 个禁用色之一的颜色,那么转移方程就是(f[x][0]=prod_{yin son[x]}f[y][0]*(m-i-1)+f[y][1]*i,f[x][1]=prod_{yin son[x]}f[y][0]*(m-i)+f[y][1]*(i-1)),可以记(DP[i])为禁用 (i) 个颜色的方案,那么(DP[i]=f[1][1]*i+f[1][0]*(m-i)),然后通过容斥禁用的颜色个数,得到 (h),具体来说 (h[i]=sumlimits_{j=0}^i(-1)^j*DP[j]*C(i,j))。到此为止!我们(O(nk))的预处理所有的(DP[])(O(k^2)) 计算所有的 (h),最后再(O(k))的计算最终答案即可!

    T2

    思维转化+线段树合并。

    T3

    不会做的带结论的复杂DP题增加了!

  • 相关阅读:
    不同浏览器的JS如何兼容?
    过滤器如何配置(javax.servlet.Filter)?
    hibernate中 dialect,lazy,inverse,cascade属性的用途?
    json注记
    php: $$str
    MySql计算字段的长度
    封装一个获取变量准确类型的函数
    JavaScript如何创建一个对象
    python+selenium自动登录163邮箱
    获取cookie
  • 原文地址:https://www.cnblogs.com/mikuo/p/14928791.html
Copyright © 2011-2022 走看看