Algorithm 从给定数组中查找最大对
我给出了一个数组Algorithm 从给定数组中查找最大对,algorithm,Algorithm,我给出了一个数组Pairs[n][n]如果Pairs[I][j]==true这意味着块I和j可以形成一对。我必须在以下条件下从给定数组中找出我可以形成的最大对: 一个块可以零对或一对。 不能对两个以上的块进行配对 我想不出任何方法。你能给我建议解决这个问题的算法吗。看看这个 int n = 10; bool[,] array = new bool[n, n]; List<Tuple<int, int>> pairs = n
Pairs[n][n]
如果
Pairs[I][j]==true
这意味着块I和j可以形成一对。我必须在以下条件下从给定数组中找出我可以形成的最大对:
一个块可以零对或一对。
不能对两个以上的块进行配对
我想不出任何方法。你能给我建议解决这个问题的算法吗。看看这个
int n = 10;
bool[,] array = new bool[n, n];
List<Tuple<int, int>> pairs = new List<Tuple<int, int>>();
for (int row = 0; row < array.GetLength(0); row++)
{
for (int col = 0; col < array.GetLength(1); col++)
{
if (array[row, col] == true)
{
pairs.Add(new Tuple<int, int>(row, col));
}
}
}
// Prints the combinations
foreach (var pair in pairs)
{
Console.WriteLine("{0} : {1}", pair.Item1, pair.Item2);
}
int n=10;
bool[,]数组=新bool[n,n];
列表对=新列表();
for(int row=0;row
您的数组表示一个图形,对[i][j]==true
表示第i个和第j个顶点之间的边
所以这个问题是针对一般图的,可能的方法是