题目大意:给定平面上的n个黑点和n个白点,一个黑点只能和右下方的白点匹配,代价为曼哈顿距离,求最小权值完备匹配
题解:因为每个点只能连接右下方的点,很容易想到排序后每个点连接最近的……观察发现顺序是无所谓的……所以直接忽视顺序搞就好了
我的收获
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int n,x,y;
long long ans;
void init()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d%d",&x,&y),ans-=x,ans+=y;
for(int i=1;i<=n;i++)
scanf("%d%d",&x,&y),ans+=x,ans-=y;
cout<<ans<<endl;
}
int main()
{
init();
return 0;
}