题目:棋盘上有黑白两种颜色的棋子,选出一对黑白棋子,若白棋的横坐标小于黑棋的横坐标,白棋的纵坐标小于黑棋的纵坐标,则称这一对棋子为匹配。求任意个数的黑白棋中最佳匹配的对数。
输入:白棋个数,黑棋个数
白棋的横纵坐标
黑棋的横纵坐标
例如:
2 2
1 1 2 2
1 1 2 2
则输出为1
分析:可以对黑白棋中个数较多的一方进行全排列,然后进行比较,找出最大匹配度。若黑白棋的个数均为n,则问题的时间复杂度为n!。
#include <iostream>
#include <vector>
using namespace std;
class Pos
{
public:
void set (int i, int j)
{
x = i, y = j;
}