TopCoder problem "GraphClique" used in TCHS SRM 47 (Division I Level Two)



Problem Statement

    

You are given a String[] graphEdge representing an undirected graph.The j-th character of the i-th element of graphEdge is '1' (one) if there is an undirected edge between the i-th and j-th vertices, and '0' (zero) otherwise. Return a int[] containing the same number of elements as graphEdge, where the K-th (1-based) element is the number of different cliques of size K in the graph.

A clique is a non-empty set of vertices where every pair of vertices is directly connected by an edge in the graph. A clique of size K is a clique containing exactly K vertices.

 

Definition

    
Class:GraphClique
Method:allClique
Parameters:String[]
Returns:int[]
Method signature:int[] allClique(String[] graphEdge)
(be sure your method is public)
    
 

Constraints

-graphEdge will contain between 1 and 18 elements, inclusive.
-Each element of graphEdge will contain exactly N characters, where N is the number of elements in graphEdge.
-Each element of graphEdge will contain only the characters '0' (zero) and '1' (one).
-The j-th character of the i-th element of graphEdge will be equal to the i-th character of the j-th element of graphEdge.
-The i-th character of the i-th element of graphEdge will be '0' (zero).
 

Examples

0)
    
{"0"}
Returns: {1 }
A single vertex is also a clique of size 1.
1)
    
{"001","001","110"}
Returns: {3, 2, 0 }
Two cliques of size 2. One consists of vertices 0 and 2, and the other consists of vertices 1 and 2.
2)
    
{"0110","1001","1001","0110"}
Returns: {4, 4, 0, 0 }
3)
    
{"00110","00010","10000","11000","00000"}
Returns: {5, 3, 0, 0, 0 }
4)
    
{"00011","00100","01011","10101","10110"}
Returns: {5, 6, 2, 0, 0 }
5)
    
{"01111","10111","11011","11101","11110"}
Returns: {5, 10, 10, 5, 1 }

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=8402

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=10803&pm=8402

Writer:

stone

Testers:

PabloGilberto , brett1479 , Olexiy , ivan_metelsky

Problem categories:

Brute Force