惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
博客园_首页
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
V
V2EX
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队

某岛

AtCoder Beginner Contest 409 Luogu P5325. 【模板】Min_25 筛 UOJ #188. 【UR #13】Sanrd AtCoder Beginner Contest 371 AtCoder Beginner Contest 369 RPGMaker 2k3 百科 OneShot 的考古 2024“开创拓芯”游戏创享节的相关记录 CJ 回来后的戒断反应 Luogu P10221. [省选联考 2024] 重塑时光 Luogu P5308 [COCI2018-2019#4] Akvizna wqs 二分 歌唱王国 Lean 相关 BZOJ 3153. Sone1 The 2023 ICPC World Finals Luxor 新巴别塔 Sora 的想象与思考 Facebook Hacker Cup 2023 Round 1 AtCoder Beginner Contest 322 LLaMA 2 相关 HuggingFace AI Game Jam ACL 2023 Trans 相关… Luogu P2053. [SCOI2007] 修车 Luogu P1973. [NOI2011] NOI 嘉年华 Luogu P1933. [NOI2010] 旅行路线 Luogu P1954. [NOI2010] 航空管制 Luogu P2048. [NOI2010] 超级钢琴 Luogu P2046. [NOI2010] 海拔
Luogu P6295. 有标号 DAG 计数
2023-05-19 · via 某岛

May 19, 2023

对于有标号图,假设我们得到了不连通情况下的 EGF,那么求对应的连通图有常见套路(可参见 城市规划那个题 和 荒漠那个题)。

因而问题转换为不连通的情况,也就是 上一题

我们需要先想办法构造卷积。

(1)   \begin{align*} f_i &= \sum_{j=1}^{i} (-1)^{j-1} \binom{i}{j} \sum_{k=1}^{i-j} f_{i-j} 2^{j(i-j)} \end{align*}

这里需要用一些 trick,最后得到。

(2)   \begin{align*} F(x) &= \sum_{i} x^i \frac{f_i}{i!2^\binom{i}{2}} \\ G(x) &= \sum_{i} x^i \frac{(-1)^{i+1}}{i!2^\binom{i}{2}}  \end{align*}

#include <lastweapon/poly>
#include <lastweapon/number>
using namespace lastweapon;

LL C2(LL n) {
    return n*(n-1)/2;
}

int main() {
#ifndef ONLINE_JUDGE
    //freopen("in.txt", "r", stdin);
#endif
    int n; RD(n)++;

    Poly F(n); Mint i2 = invFac[2];

    FOR(i, 1, n) {
        F[i] = invFac[i] * pow(i2, C2(i));
        if (i&1) F[i] = -F[i];
    }

    F[0] += 1; F = F.inv(n);
    REP_1(i, n) F[i] *= pow(Mint(2), C2(i));
    F = F.log(n);

    --n;
    REP_1(i, n) {
        cout << F[i] * fac[i] << endl;
    }
}

Posted by xiaodao
Category: 日常