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个顶点之间的边

所以这个问题是针对一般图的,可能的方法是