Alice and the Cactus
Contest: Codeforces Round 593 (Div. 2)
Difficulty rating: 3000
Tags: dfs and similar, graphs, math, probabilities

Alice recently found some cactuses growing near her house! After several months, more and more cactuses appeared and soon they blocked the road. So Alice wants to clear them.

A cactus is a connected undirected graph. No edge of this graph lies on more than one simple cycle. Let's call a sequence of different nodes of the graph $$$x_1, x_2, \ldots, x_k$$$ a simple cycle, if $$$k \geq 3$$$ and all pairs of nodes $$$x_1$$$ and $$$x_2$$$, $$$x_2$$$ and $$$x_3$$$, $$$\ldots$$$, $$$x_{k-1}$$$ and $$$x_k$$$, $$$x_k$$$ and $$$x_1$$$ are connected with edges. Edges $$$(x_1, x_2)$$$, $$$(x_2, x_3)$$$, $$$\ldots$$$, $$$(x_{k-1}, x_k)$$$, $$$(x_k, x_1)$$$ lies on this simple cycle.

There are so many cactuses, so it seems hard to destroy them. But Alice has magic. When she uses the magic, every node of the cactus will be removed independently with the probability $$$\frac{1}{2}$$$. When a node is removed, the edges connected to it are also removed.

Now Alice wants to test her magic. She has picked a cactus with $$$n$$$ nodes and $$$m$$$ edges. Let $$$X[S]$$$ (where $$$S$$$ is a subset of the removed nodes) be the number of connected components in the remaining graph after removing nodes of set $$$S$$$. Before she uses magic, she wants to know the variance of random variable $$$X$$$, if all nodes of the graph have probability $$$\frac{1}{2}$$$ to be removed and all $$$n$$$ of these events are independent. By the definition the variance is equal to $$$E[(X - E[X])^2]$$$, where $$$E[X]$$$ is the expected value of $$$X$$$. Help her and calculate this value by modulo $$$10^9+7$$$.

Formally, let $$$M = 10^9 + 7$$$ (a prime number). It can be shown that the answer can be expressed as an irreducible fraction $$$\frac{p}{q}$$$, where $$$p$$$ and $$$q$$$ are integers and $$$q \not \equiv 0 \pmod{M}$$$. Output the integer equal to $$$p \cdot q^{-1} \bmod M$$$. In other words, find such an integer $$$x$$$ that $$$0 \le x < M$$$ and $$$x \cdot q \equiv p \pmod{M}$$$.

Input format:
The first line contains two integers $$$n$$$ and $$$m$$$, separated by space ($$$1 \leq n \leq 5 \cdot 10^5, n - 1 \leq m \leq 5 \cdot 10^5$$$) — the number of nodes and edges in the cactus.

The following $$$m$$$ lines contain two numbers $$$u$$$ and $$$v$$$ each, separated by space ($$$1 \leq u, v \leq n, u \neq v$$$) meaning that there is an edge between the nodes $$$u$$$ and $$$v$$$.

It is guaranteed that there are no loops and multiple edges in the graph and the given graph is cactus.

Output format:
Print one integer — the variance of the number of connected components in the remaining graph, after removing a set of nodes such that each node has probability $$$\frac{1}{2}$$$ to be removed and all these events are independent. This value should be found by modulo $$$10^9+7$$$.

Constraints:
Time limit: 3.0 s
Memory limit: 256.0 MB

Note:
In the first sample, the answer is $$$\frac{7}{64}$$$. If all nodes are removed the value of $$$X$$$ is equal to $$$0$$$, otherwise, it is equal to $$$1$$$. So, the expected value of $$$X$$$ is equal to $$$0\times\frac{1}{8}+1\times\frac{7}{8}=\frac{7}{8}$$$. So, the variance of $$$X$$$ is equal to $$$(0 - \frac{7}{8})^2\times\frac{1}{8}+(1-\frac{7}{8})^2\times\frac{7}{8} = (\frac{7}{8})^2\times\frac{1}{8}+(\frac{1}{8})^2\times\frac{7}{8} = \frac{7}{64}$$$.

In the second sample, the answer is $$$\frac{1}{4}$$$.

Example input:
3 3
1 2
2 3
1 3

Example output:
984375007

Example input:
5 6
1 2
2 3
1 3
3 4
4 5
3 5

Example output:
250000002

Editorial:
First we consider how to calculate $$$E(X)$$$.
The number of connected components equals to the number of nodes minus the number of edges and then add the number of rings in it. So we can calculate the possibility of removing one node, one edge or one single ring.
Then we can split the variance, it is equals to $$$E(X^2)-2*E(X)^2+E(X)^2=E(X^2)-E(X)^2$$$. Then we can again to split $$$X^2$$$. Let the number nodes equal to $$$a$$$, the number edges equal to $$$b$$$, the number rings equal to $$$c$$$. Then $$$X^2=(a-b+c)^2=a^2+b^2+c^2-2ab-2bc+2ac$$$. We can find there is contribution between a pair of nodes, edges, rings (the two may be the same) and between a node and an edge, a node and a ring, an edge and a ring. Then we can calculate the possibility of such pair that the elements in it remains at the same time. The answer is the same when the pair is a ring and a node on it, or when it is a ring and a node not on it, or an edge with one of its end point ... If we consider all the situation of intersection and not intersection, we can get a liner algorithm. But the Time Complexity is $$$O(nlogn)$$$ since we need to calculate the multiplicative inverse of modulo.