無題II 二分 匈牙利

2021-09-18 08:05:27 字數 1402 閱讀 8153

這是乙個簡單的遊戲,在乙個n*n的矩陣中,找n個數使得這n個數都在不同的行和列裡並且要求這n個數中的最大值和最小值的差值最小。

輸入乙個整數t表示t組資料。

對於每組資料第一行輸入乙個正整數n(1<=n<=100)表示矩陣的大小。

接著輸入n行,每行n個數x(0<=x<=100)。

對於每組資料輸出乙個數表示最小差值。

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

4041

4243

4445

4647

4849

5051

5253

5455

5657

5859

6061

6263

#include

#define init(a,b) memset(a,b,sizeof(a))

#define ll long long

using

namespace

std;

const

int inf=0x3f3f3f3f;

const

int maxn=1e2+7;

const

int mod=1e9+7;

int line[maxn][maxn],vis[maxn],match[maxn];

int n,minnum,maxnum,minsub,maxsub,midsub,p;

bool

find

(int x)}}

return

false;

}bool

hungary

()return

true;

}int

main()}

minsub=0,maxsub=maxnum-minnum;

int ans=0;

while(minsub<=maxsub)

}if(flag)maxsub=midsub-1,ans=midsub;

else minsub=midsub+1;

}printf("%d\n",ans);

}return0;}

HDU 2236 無題II 二分 最大匹配

題目 problem description 這是乙個簡單的遊戲,在乙個n n的矩陣中,找n個數使得這n個數都在不同的行和列裡並且要求這n個數中的最大值和最小值的差值最小。input 輸入乙個整數t表示t組資料。對於每組資料第一行輸入乙個正整數n 1 n 100 表示矩陣的大小。接著輸入n行,每行n...

HDU 2236 無題II 二分 最大匹配

題意 在乙個n n的矩陣中,找n個數使得這n個數都在不同的行和列裡並且要求這n個數中的最大值和最小值的差值最小。分析 二分列舉差值,如果滿足完全匹配則該差值符合。include include define clr x memset x,0,sizeof x int g 105 105 int li...

POJ 2289 二分 匈牙利

題意 把 n 個人分成 m 組,給出 n 個人各自可選的組別集合,求一種合法的分配方案,使得人數最多的組的人數最少 分析 最多最少,一般二分跑不了,然後求分配就匈牙利稍微變形就可以了 變形是為了適應二分 include include include include using namespace ...