• HihoCoder1470 : 公平的游戏


    描述

    有一些人在玩一个游戏。游戏的舞台发生在一个 n 个点的树上。

    这个游戏分为很多轮,每一轮都有一些玩家参与,每个玩家都会降落在一条给定的边上(不同玩家的边不同)。之后这 n 个点上都会随机出现一个0或者1作为权值。

    我们说这一轮游戏是公平的,当且仅当这一轮中,对于每个玩家,如果将她所在的边删除,那么两边对应的两个子树的点权和是相等的。

    对于每一轮,我们给出每个玩家的位置,你需要计算出该轮游戏是公平的概率 p。为了保证输出是整数,你只需要输出 p × 2n % (109+7) 就可以了。

    输入

    树的点从1开始标号。

    第一行两个数 n 和 m 分别表示树的点数和游戏的轮数。

    接下来 n-1行每行两个数 a 和 b 表示一条边。

    接下来 m 行每行表示一轮游戏。

    其中的第 i 行由一个数字 ti 开头,表示这轮游戏有 ti 个玩家,

    接下来 ti 个数对,其中第 j 个数对 ai,j 和 bi,j 表示第 j 个玩家所在的边的两个端点。

    n, m ≤ 100000

    所有 ti 的和 ≤ 1000000

    输出

    输出 m 行,每行一个数表示答案。

    样例输入

    5 5
    1 2
    1 3
    3 4
    3 5
    4 1 2 1 3 3 4 3 5
    1 3 4
    2 3 4 1 2
    1 3 5
    2 3 4 3 5

    样例输出

    1
    5
    2
    5
    2

    和组合数有关。

  • 相关阅读:
    cmake的安装
    安装cmake过程g++: 错误:unrecognized command line option ‘-std=gnu++14’
    进程空间分配
    git 基本操作
    nm命令
    container_of 宏
    cmake
    fiddler修改Requests之前的数据和response 之后的数据
    Fiddler抓包请求前设置断点
    jmeter连接mysql数据库
  • 原文地址:https://www.cnblogs.com/hua-dong/p/8453871.html
Copyright © 2020-2023  润新知