XYZ Path queries
Practice
4.7 (16 votes)
Algorithms
Bit manipulation
Combinatorics
Depth first search
Dynamic programming
Graphs
Lowest common ancestor
Trees
Problem
89% Success 3345 Attempts 50 Points 1.2s Time Limit 256MB Memory 1024 KB Max Code
Given a tree with N nodes (numbered 1 to N). For each valid i, the i-th node has a value of A[i] associated with it.
Your target is to handle the queries of the following 4 types -
- "1 X Y": Sum of values of all the nodes in the path from X to Y.
- "2 X Y": Sum of pairwise OR of every possible pair in the path from X to Y i.e. ∑(a[i] | a[j]) where i < j.
- "3 X Y": Sum of OR of all triplet in the path from X to Y i.e. ∑(a[i] | a[j] | a[k]) where i < j < k.
- "4 X Y": Sum of OR of all groups of type (a,b,c,d) in the path from X to Y i.e. ∑(a[i] | a[j] | a[k] | a[l]) where i < j < k < l.
For each query answer can be very large so print it MODULO 1000000007 (1e9 + 7).
Input -
- First-line contains N, the number of nodes in the tree
- Next line contains N space-separated integers denoting A[i]
- Next N-1 lines contain two space-separated integers x and y which denote that there is an edge between node u and node v.
- The next line contains Q, the number of queries to process.
- Next, Q lines follow with one of the four queries per line.
Output-
For each query print a single integer denoting it's sum as described in the problem.
Constraints -
- 1 <= N <= 100000 (1e5)
- 1 <= Q <= 100000 (1e5)
- 1 <= X,Y <= N
- 1 <= a[i] <= 1000000000 (1e9)
Submissions
Please login to view your submissions
Similar Problems
1.Skrtel !
Points:50
Tags:
Depth First SearchFenwick TreeGraphsMediumNumber TheoryPrime Factorization
Points:50
23 votes
Tags:
Depth First SearchMediumTrees
Points:50
2 votes
Tags:
AlgorithmsDepth First SearchDynamic programmingGraphsMedium
Editorial