zoukankan      html  css  js  c++  java
  • 洛谷P6516 [QkOI#R1] Quark and Graph

    题意

    洛谷

    做法

    (a_i)表示距离(1)最短路为(i)的点个数,令(D=max{i|a_i eq 0})
    由于题目保证至少存在一种解,所以(a_0,cdots,a_D)均不等于(0)
    分成相邻层之间的边,与层内部的边,生成函数显然为:

    [prodlimits_{i=0}^{D-1} ((x+1)^{a_i}-1)^{a_{i+1}}cdot prodlimits_{i=0}^D(x+1)^{a_i*(a_i-1)/2} ]

    我们的重点放在第一部分
    这里由于(sumlimits_{i=0}^{D-1}a_icdot a_{i+1}le 2 imes 10^5),可以直接做到(O(Llog^2L))(其中(L=sumlimits_{i=0}^{D-1}a_icdot a_{i+1})
    但到这一步就不做了,未免这题显得太sb了,我们继续做下去

    (F(x)=prodlimits_{i=0}^{D-1} ((x+1)^{a_i}-1)^{a_{i+1}}= ext{exp}(sumlimits_{i=0}^{D-1}a_{i+1} ext{ln}((x+1)^{a_i}-1)))

    这里( ext{ln})括号内的常数项不为(1),比较不好搞
    我们转换一下:
    (G(x)=F(x-1)=(-1)^{sumlimits_{i=1}^D a_i} ext{exp}(sumlimits_{i=0}^{D-1}a_{i+1} ext{ln}(1-x^{a_i}))=(-1)^{sumlimits_{i=1}^D a_i} ext{exp}(sumlimits_{i=0}^{D-1}a_{i+1}sumlimits_{k=1}^{infty} frac{x^{ka_i}}{k})))

    由于(a_ile n)( ext{exp})括号内的这部分可以(O(nlogn))手动展开,然后求个exp

    之后(F(x)=G(x+1))是个比较套路的东西

    细节:由于我们需要通过(G(x))还原出(F(x))来,故需要得到(G(x)~mod~x^{L+1})(我本来写的(mod~x^{m+1}),WA到自闭)

    时间复杂度(O(mlogm+LlogL)),由于要求exp的缘故,可能跑不过(O(mlogm+Llog^2L))

  • 相关阅读:
    myeclipse 配置svn
    windows下 将tomcat做成服务,并于oracle后启动
    局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?
    使用cmd查看windows端口占用情况,并关闭应用
    生成javadoc文档
    JNI以及JNA使用
    自定义标签-java
    dwr框架应用
    Hadoop生态圈简介
    tomcat之日志记录
  • 原文地址:https://www.cnblogs.com/Grice/p/14251603.html
Copyright © 2011-2022 走看看