美文网首页
(周赛t4)1916. 统计为蚁群构筑房间的不同顺序

(周赛t4)1916. 统计为蚁群构筑房间的不同顺序

作者: 来到了没有知识的荒原 | 来源:发表于2021-09-17 21:32 被阅读0次

1916. 统计为蚁群构筑房间的不同顺序

又用到了乘法逆元,记好公式:b^{-1}=b^{MOD-2}
算是一个树上dp,计算拓扑排序的数量。
yxc的题解

typedef long long ll;
const int N = 1e5 + 10, MOD = 1e9 + 7;
int e[N], ne[N], h[N], idx;
ll sz[N], ans[N];
ll f[N], g[N];
class Solution {
 public:
  ll qmi(ll a, ll b) {
    ll res = 1;
    while (b) {
      if (b & 1) res = (res * a) % MOD;
      a = (a * a) % MOD;
      b >>= 1;
    }
    return res;
  }
  void dfs(int u) {
    ll s = 0;
    for (int i = h[u]; i != -1; i = ne[i]) {
      int j = e[i];
      dfs(j);
      s += sz[j];
    }
    ll res = f[s];

    for (int i = h[u]; i != -1; i = ne[i]) {
      int j = e[i];
      res = (res * g[sz[j]] % MOD * ans[j] % MOD);
    }
    ans[u] = res;
    sz[u] = s + 1;
  }
  void add(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx++; }
  int waysToBuildRooms(vector<int>& pa) {
    idx = 0, memset(h, -1, sizeof h);
    memset(sz, 0, sizeof sz), memset(ans, 0, sizeof ans);
    f[0] = g[0] = 1;
    for (int i = 1; i < N; i++) {
      f[i] = f[i - 1] * i % MOD;
      g[i] = qmi(f[i], MOD - 2) % MOD;
    }

    for (int i = 1; i < pa.size(); i++) {
      add(pa[i], i);
    }
    dfs(0);
    return ans[0];
  }
};

相关文章

  • (周赛t4)1916. 统计为蚁群构筑房间的不同顺序

    1916. 统计为蚁群构筑房间的不同顺序[https://leetcode-cn.com/problems/cou...

  • 算法导论数据结构的扩张笔记

    动态顺序统计 1.将红黑树扩展为顺序统计树,可以在 O(lgn) 时间内确定任何的顺序统计量2.扩展方法为红黑树的...

  • 【国赛培训】蚁群算法

    时间:2019.8.12老师:祁永强内容:蚁群算法基本原理个性:“无中生有,自圆其说”,戴准帽子(套框架),优化算...

  • T4微信统计器最新版

    T4微信统计器20200313更新 强悍功能更新。 1.适配微信为2.7.1.88 2.支持远程分享连接 3.支持...

  • 《天才在左 疯子在右》读书笔记

    一、生命的尽头 摘抄:“整个蚁群才是完整的生命!” 感悟:不同的蚁种承担了生命的不同功能,进而组成完整的生命链。这...

  • 蚁群

    主体被分食其余闪烁其词忽明忽暗如磷火思想糜于宰割中化为虚空 水滴落入红铁尘埃落入森林我落入梦境 紧张沉睡喧宾夺主张...

  • 蚁群算法

    蚁群可以在不同的环境下,寻找到达实物源的最短路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。这种信息...

  • TSP解决之道——蚁群算法

    参考 蚁群算法java实现以及TSP问题蚁群算法求解 蚁群算法原理与应用讲解 蚁群算法原理与应用1-自然计算与群体...

  • 信念,构筑世界

    01 信念,构筑自己的世界。信念,也构筑他人的世界。一群人的信念,构筑一群人的世界。 物质世界中,所有的物质,在辅...

  • 《每天写句小故事》——五年部分语录统计

    《二〇一三年至今部分语录统计》 说明:①内容为个人原创,转载请说明。 ②语录顺序由下至上年份顺序。 ...

网友评论

      本文标题:(周赛t4)1916. 统计为蚁群构筑房间的不同顺序

      本文链接:https://www.haomeiwen.com/subject/suvsgltx.html