CF1252B.Cleaning Robots

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The new ICPC town has NN junctions (numbered from 11 to NN ) which are connected by N1N-1 roads. It is possible from one junction to go to any other junctions by going through one or more roads. To make sure all the junctions are well-maintained, the government environment agency is planning to deploy their newest advanced cleaning robots. In addition to its cleaning ability, each robot is also equipped with a movement ability such that it can move from one junction to any other junctions connected by roads. However, as you might have guessed, such robots are not cheap. Therefore, the agency is considering the following deployment plan.

Let TkT_k be the set of junctions which should be cleaned by the kthk^{th} robot (also known as, the robot's task), and Tk1|T_k| \ge 1 be the number of junctions in TkT_k . The junctions in TkT_k form a path, i.e. there exists a sequence of v1,v2,,vTkv_1, v_2, \dots, v_{|T_k|} where viTkv_i \in T_k and vivjv_i \neq v_j for all iji \neq j such that each adjacent junction in this sequence is connected by a road. The union of TT for all robots is equal to the set of all junctions in ICPC town. On the other hand, no two robots share a common junction, i.e. TiTj=T_i \cap T_j = \emptyset if iji \neq j .

To avoid complaints from citizens for an inefficient operation, the deployment plan should be irreducible; in other words, there should be no two robots, ii and jj , such that TiTjT_i \cup T_j forms a (longer) path. Note that the agency does not care whether the number of robots being used is minimized as long as all the tasks are irreducible.

Your task in this problem is to count the number of feasible deployment plan given the town's layout. A plan is feasible if and only if it satisfies all the above-mentioned requirements.

For example, let N=6N = 6 and the roads are {(1,3),(2,3),(3,4),(4,5),(4,6)}\{(1,3),(2,3),(3,4),(4,5),(4,6)\} . There are 55 feasible deployment plans as shown in the following figure.

  • The first plan uses 22 robots (labeled as A and B in the figure) to clean {1,2,3}\{1,2,3\} and {4,5,6}\{4,5,6\} .
  • The second plan uses 33 robots (labeled as A, B, and C in the figure) to clean {1,3,4,6}\{1,3,4,6\} , {2}\{2\} , and {5}\{5\} .
  • The third plan uses 33 robots to clean {1,3,4,5}\{1,3,4,5\} , {2}\{2\} , and {6}\{6\} .
  • The fourth plan uses 33 robots to clean {1}\{1\} , {2,3,4,6}\{2,3,4,6\} , and {5}\{5\} .
  • The fifth plan uses 33 robots to clean {1}\{1\} , {2,3,4,5}\{2,3,4,5\} , and {6}\{6\} .

No other plans are feasible in this case. For example, the plan {{1,3},{2},{4,5,6}}\{\{1,3\},\{2\},\{4,5,6\}\} is not feasible as the task {1,3}\{1,3\} and {2}\{2\} can be combined into a longer path {1,3,2}\{1,3,2\} . The plan {{1,2,3,4},{5},{6}}\{\{1,2,3,4\},\{5\},\{6\}\} is also not feasible as {1,2,3,4}\{1,2,3,4\} is not a path.

输入格式

Input begins with a line containing an integer: NN ( 1N1000001 \le N \le 100\,000 ) representing the number of junctions. The next N1N-1 lines each contains two integers: uiu_i viv_i ( 1ui<viN1 \le u_i < v_i \le N ) representing a road connecting junction uiu_i and junction viv_i . It is guaranteed that it is possible from one junction to go to any other junctions by going through one or more roads.

输出格式

Output in a line an integer representing the number of feasible deployment plans. As this output can be large, you need to modulo the output by 10000000071\,000\,000\,007 .

输入输出样例

  • 输入#1

    6
    1 3
    2 3
    3 4
    4 5
    4 6
    

    输出#1

    5
    
  • 输入#2

    5
    1 2
    2 3
    2 4
    4 5
    

    输出#2

    3
    

说明/提示

Explanation for the sample input/output #1

This is the example from the problem description.

首页