Editorial for COCI '21 Contest 4 #5 Šarenlist
Submitting an official solution before solving the problem yourself is a bannable offence.
Let's look at the set  and a family of sets 
, 
:
set of all tree colorings
set of all colorings in which the path between
and
is monochrome
In terms of these sets, the solution is the size of the set difference between  and the union of all the 
's. From the inclusion-exclusion formula, we have:
We use the notation .
Since , it's possible to iterate over all the 
 subsets 
. For each such subset, we have to determine the size of 
, i.e. the number of colorings in which each of the paths from 
 to 
 is monochrome, for each 
.
The number of such colorings depends on , the number of components of the subgraph containing the monochrome paths, and the number of edges 
 which do not belong to any monochrome path. The desired value is then 
. To see this, note that each component (i.e. a set of paths connected by shared edges) can be colored independently into one of 
 colors. Each edge not on one of the paths can also be colored in any of the 
 colors.
The value of  can be determined by constructing a graph in which node 
 represents the path between nodes 
 and 
, and an edge between 
 and 
 means that the paths between 
 and 
 and between 
 and 
 have some edge in common. By using a DSU structure or a DFS, we can determine 
 in time complexity 
 for each 
.
To calculate the value of , we can determine how many edges are in the union of the paths from 
 to 
 for 
, and subtract this from the total number of edges, 
. For each path from 
 to 
, we maintain the set of edges it is made up from. Since there are at most 
 edges, we can use a bitmask to store these sets, and then a union corresponds to the bitwise or operator 
. Then, with 
 preprocessing, we can determine the value of 
 in 
.
Adding the complexities of  and 
, and multiplying this by the total number of subsets of 
, yields a final time complexity of 
. Note that if 
, calculating 
 now takes 
 time, which is too slow. The problem can still be solved for 
, but this is left as an exercise to the reader.
Comments