机翻,稍作改编
题目描述
贝西和她附近的奶牛朋友们终于决定开始通过小路将他们的农场连接起来,以联合起来对抗农民。每个农场的奶牛最初被指示建造一条通往另一个农场的小路,共计 N 条小路(1<=N<=100,000)。然而,在项目进行数月后,只有 M(1<=M<N) 条小路实际上已经建成。
农场之间关于哪些农场已经建造了小路的争论,现在威胁着分裂奶牛联盟。为了缓解紧张局势,Bessie希望计算目前存在的M条小路可以建造的方式有多少种。
例如,如果有一条连接第3个和第4个农场的小路,那么一种可能是第3个农场建造了这条小路,另一种可能是第4个农场建造了这条小路。通过计算建造小路的农场的不同分配数量(mod1,000,000,007),帮助贝西。如果每个分配中至少有一个小路由不同的农场建造,则认为两个分配是不同的。
正确的题意简述
来源于@御坂17379号
给定N个点,M条边(M<=N)
边是无向的
但是现在要求你将每条边都变成有向边,且每个点的出度最大为1
求方案数,对1e9+7取模
输入格式
第一行两个数,分别为 n 和 m
下面 m 行,分别为第 i 条边的两个端点
输出格式
一行一个数,即方案总数 mod1000000007