给定一个具有N个顶点的完整图,任务是计算去除边的方法的数量,以使生成的图具有奇数个边。
例子:
Input: N = 3
Output: 4
The initial graph has 3 edges as it is a complete graph. We can remove edges (1, 2) and (1, 3) or (1, 2) and (2, 3) or (1, 3) and (2, 3) or we do not remove any of the edges.
Input: N = 4
Output: 32
方法:由于图是完整的,所以边的总数将为E = N *(N – 1)/ 2 。现在有两种情况,
- 如果E为偶数,则必须去除奇数个边,因此总的路数为相当于 。
- 如果E为奇数,则必须去除偶数个边,因此总的路数为相当于 。
请注意,如果N = 1,则答案将为0 。
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to return the number of ways
// to remove edges from the graph so that
// odd number of edges are left in the graph
int countWays(int N)
{
// Total number of edges
int E = (N * (N - 1)) / 2;
if (N == 1)
return 0;
return pow(2, E - 1);
}
// Driver code
int main()
{
int N = 4;
cout << countWays(N);
return 0;
}
Java
// Java implementation of the approach
class GfG
{
// Function to return the number of ways
// to remove edges from the graph so that
// odd number of edges are left in the graph
static int countWays(int N)
{
// Total number of edges
int E = (N * (N - 1)) / 2;
if (N == 1)
return 0;
return (int)Math.pow(2, E - 1);
}
// Driver code
public static void main(String[] args)
{
int N = 4;
System.out.println(countWays(N));
}
}
// This code is contributed by Prerna Saini
Python3
# Python3 implementation of the approach
# Function to return the number of ways
# to remove edges from the graph so that
# odd number of edges are left in the graph
def countWays(N):
# Total number of edges
E = (N * (N - 1)) / 2
if (N == 1):
return 0
return int(pow(2, E - 1))
# Driver code
if __name__ == '__main__':
N = 4
print(countWays(N))
# This code contributed by PrinciRaj1992
C#
// C# implementation of the approach
using System;
public class GFG{
// Function to return the number of ways
// to remove edges from the graph so that
// odd number of edges are left in the graph
static int countWays(int N)
{
// Total number of edges
int E = (N * (N - 1)) / 2;
if (N == 1)
return 0;
return (int)Math.Pow(2, E - 1);
}
// Driver code
static public void Main (){
int N = 4;
Console.WriteLine(countWays(N));
}
}
// This code is contributed by ajit.
PHP
输出:
32