QOJ.ac

QOJ

実行時間制限: 0.5 s メモリ制限: 2048 MB 満点: 100

#3592. 离开雅南

統計

Eileen 在 Yharnam 市的公交公司工作。作为一名典型的完美主义者,她总是希望确保乘客尽可能感到满意,由于离开这座伟大城市的人并不多,这原本并不是什么难事。然而最近,城里出现了一些疯狂的疾病,许多 Yharnam 的市民决定离开。当然,是乘坐公交车。

Yharnam 的每辆公交车都由成对的座位组成。每一对座位由两个座位组成:靠窗的座位和靠过道的座位。这两个座位被认为是相邻的。每个座位要么是空的(意味着没有人坐),要么是满的(意味着有人坐)。

有些人喜欢他们旁边的座位是空的。有些人喜欢有人可以交谈,所以他们宁愿旁边的座位是满的。有些人只是因为能离开 Yharnam 而感到非常高兴。因此,就乘坐公交车的幸福感而言,有三种类型的人:

  • 内向者(introvert):如果内向者在公交车上找到了座位,且他们旁边的座位是空的,他们就会感到幸福;
  • 外向者(extrovert):如果外向者在公交车上找到了座位,且他们旁边的座位是满的,他们就会感到幸福;
  • 随和者(easygoing):只要随和者在公交车上找到了座位,他们就会感到幸福。

乘客上车的顺序是预先确定的。在登车过程中,每个人在下一个人被允许选择之前,先选择一个座位并坐下。一旦某人选择了座位,他们就不能更改。内向者会尽可能避免坐在另一个内向者旁边,因为他们知道那种挣扎。除此之外,每个人在选择座位时都遵循类似的方式:

  • 如果有任何空座位能让他们感到幸福,该乘客会从这些座位中随机均匀地选择一个。
  • 如果有空座位但没有能让他们感到幸福的座位,外向者会从所有空座位中随机均匀地选择一个,而内向者会从那些不与内向者相邻的空座位中随机均匀地选择一个;如果所有空座位都与内向者相邻,则从所有空座位中随机均匀地选择一个。注意,这种情况不会发生在随和者身上。
  • 如果没有空座位,该乘客会抱怨着离开公交车。

Eileen 将公交车的幸福感定义为公交车准备出发时(即在所有人登车完毕或没有空座位时)车上幸福乘客的数量。随着离开 Yharnam 的公交车越来越多,车上的乘客也越来越多,保证每个人的幸福感变得比以往任何时候都更加困难。

Eileen 目前最大化幸福乘客数量的策略是:让所有随和者先上车,然后是所有外向者,最后是内向者。她解释说:首先让随和且容易满足的随和者在车上找到位置,然后让外向者通过坐在随和者或另一个外向者旁边来让自己感到幸福,最后让一些幸运的内向者寻找一个安静的座位。尽管 Eileen 的策略看起来很合理,但乘客反馈的旅行评分却呈下降趋势。这就是她向你寻求帮助的原因。

在对乘客登车方式进行任何更改之前,Eileen 希望更好地了解她目前的方法。一辆由 $N$ 对座位组成的公交车即将离开 Yharnam。

Eileen 知道有 $G$ 名随和者、$I$ 名内向者和 $E$ 名外向者准备登车。她想知道在随和者先登车,其次是外向者,最后是内向者的情况下,公交车的期望幸福感。

输入格式

输入包含一行,包含四个整数 $N, G, I$ 和 $E$ ($0 \le N, G, I, E \le 10^6$),如题目描述中所述。

输出格式

期望幸福感可以表示为一个不可约分数 $P/Q$。输出 $P \times Q'$ 除以 $10^9 + 7$ 的余数,其中 $Q'$ 是 $Q$ 的模乘法逆元,即 $Q \times Q' \equiv 1 \pmod{10^9 + 7}$。

样例

样例输入 1

1 0 1 1

样例输出 1

1

样例输入 2

10 0 11 0

样例输出 2

9

样例输入 3

2 2 1 0

样例输出 3

333333338

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.