编程题
### 问题描述 小齐和她周围的牛场朋友们决定建立一条联通各牛场的小道,以期组成一个反对农场主的联盟。最初,每个牛场的 $N$($1 \le N \le 100,000$)头牛都被指示建造一条小道,总共有 $N$ 条小道。然而,数月过去了,实际上只有 $M$($1 \le M < N$)条小道被建造出来。 各牛场之间关于哪些牛场已经建造小道的争论现在威胁着分裂牛联盟。为了缓解紧张气氛,小齐希望计算已经存在的 $M$ 条小道可能是由哪些牛场建造的方式。例如,如果存在一条连接第 $3$ 和第 $4$ 个牛场的小道,那么可能是第 $3$ 个牛场建造了这条小道,也可能是第 $4$ 个牛场建造了这条小道。通过计算满足以下条件的小道到牛场的分配方式数量,以 $1,000,000,007$ 取模的结果,来帮助小齐。如果两个分配方式在每个分配中都有至少一条小道是由不同的牛场建造的,则认为它们是不同的。 ### 输入格式 - 第 $1$ 行:两个由空格分隔的整数 $N$ 和 $M$,表示牛场的数量和已建造小道的数量。 - 接下来的 $M$ 行:第 $i+1$ 行描述第 $i$ 条小道。每行包含两个由空格分隔的整数 $u_i$ 和 $v_i$($1 \le u_i, v_i \le N, u_i \neq v_i$),表示小道连接的两个牛场。 ### 输出格式 - 第 $1$ 行:一个整数,表示小道到牛场的分配方式数量,取模 $1,000,000,007$。如果不存在任何分配方式满足上述条件,则输出 $0$。 ### 样例输入 ``` 5 4 1 2 3 2 4 5 4 5 ``` ### 样例输出 ``` 6 ``` ### 评测数据规模 $1 \le N \le 100,000$,$1 \le M < N$。
查看答案
赣ICP备20007335号-2