带权二分图最大匹配模板O(n^3)
const int maxn=31;
const int inf=maxint/2;
int w[maxn][maxn],x[maxn],y[maxn];
int prev_x[maxn],prev_y[maxn],son_y[maxn],slack[maxn],par[maxn];
int lx,ly,pop;
int n,k,m;
int mold[310],mnew[310],num_old,num_new;
char _old[10010],_new[10010],tmp[10];
void adjust(int v)
{
son_y[v]=prev_y[v];
if (prev_x[son_y[v]]!=-2)
adjust(prev_x[son_y[v]]);
}
bool find(int v)
{
int i;
for (i=0; i<pop; i++)
if (prev_y[i]==-1)
{
if (slack[i]>x[v]+y[i]-w[v][i]......
阅读全文