• 2018/2/25


    T1 小星星

      这个题开始先弄了一个20分的暴力,只要对于每一个点来枚举父亲就行了。 然后就是开始想链的部分分,弄了一个 f[i][j][k], i 表示状压所用过的标号,集合,然后 j,k 表示这条链的两个端端点,然后枚举子集来转移,但是时间复杂的事过不了的。 然后再最后30min 想到链的做法可以直接用f[i][j]来DP,i 还是表示用了哪些标号,j表示当前这条链的开头是谁,然后枚举这条链由开头能拓展到谁就好了。

      然后又80分的暴力做法就是,设计数组f[i][j][k] 表示在 i 这个节点用 j 这个标号,然后当前他的子树里用了 k 这个集合的标号,然后就是暴力转移,转移的时候暴力枚举儿子的状态,然后复杂度就是O(n^3*(2^2n))的这个其实可以拿到50分,然后我们可以发现,在一个子树里,其实有用的状态非常的少,且有用的状态中1的个数就是其子树的大小,然后我们就可以直接开一个数组G[x][j]来记录1的个数有x个的状态都有谁,然后再枚举的时候就可以快很多,拿到70-80分

      然后正解是看到计数想容斥,就是可以考虑用n个标号来对新图上的点随便标,不一定所有的标号都用,只要保证新图中相连的点在旧图中有边就行了。假设现在我们最多用了n-1个点,那么至少有一对点用了相同的标号,然后我们枚举每一中选标号的方案,然后进行一次树DP,再进行容斥就好了。

    T2 神秘门

      莫比乌斯反演?

      就是知道一个式子 phi[i*j]=phi[i]*phi[j]*gcd(i,j) / phi[gcd(i,j)],然后推一推就好了

    T3 黄昏下的礼物

      40分的暴力: 因为这是一个回文串,那么我们构造一半就能得到整个的串,那么用f[i][l][r] 表示构造到第 i 位,对于原串来说,从左往右匹配到长度是 l 位,从右到左匹配到长度是 r 的方案数,如果是偶数长度的话,ans+=f[N/2][l][r] (l+r>=N), 奇数长度的话就是ans+=f[N/2][l][r]*26(l+r>N),ans+=f[N/2][l][r](l+r==N)

      正解的话,也是类似的构造一个大的自动机,然后矩阵乘优化,具体的话比较麻烦,不多写了。

  • 相关阅读:
    ecshop 调用指定分类的推荐,热卖,新品
    ecshop 首页调用指定类产品
    html常用笔记
    ecshop 修改flash图片大小
    ecshop 删除随机版权
    Java Web(一) Servlet详解!!
    Git使用总结
    git clone命令使用
    Lucene学习总结之四:Lucene索引过程分析
    Lucene学习总结之二:Lucene的总体架构
  • 原文地址:https://www.cnblogs.com/FOXYY/p/8478192.html
Copyright © 2020-2023  润新知