hdu2336 (鍖堢墮鍒╂渶澶у尮閰?浜屽垎)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu2336 (鍖堢墮鍒╂渶澶у尮閰?浜屽垎)相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/bre' title='bre'>bre   printf   cst   mem   ++   scribe   杈撳嚭   scanf   

Describe

杩欐槸涓€涓畝鍗曠殑娓告垙锛屽湪涓€涓猲*n鐨勭煩闃典腑锛屾壘n涓暟浣垮緱杩檔涓暟閮藉湪涓嶅悓鐨勮鍜屽垪閲屽苟涓旇姹傝繖n涓暟涓殑鏈€澶у€煎拰鏈€灏忓€肩殑宸€兼渶灏忋€?/p>

Input

杈撳叆涓€涓暣鏁癟琛ㄧずT缁勬暟鎹€?br> 瀵逛簬姣忕粍鏁版嵁绗竴琛岃緭鍏ヤ竴涓鏁存暟n(1<=n<=100)琛ㄧず鐭╅樀鐨勫ぇ灏忋€?br> 鎺ョ潃杈撳叆n琛岋紝姣忚n涓暟x(0<=x<=100)銆?/p>

Output

瀵逛簬姣忕粍鏁版嵁杈撳嚭涓€涓暟琛ㄧず鏈€灏忓樊鍊笺€?/p>

Sample Input

1
4
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

Sample Output

3

Solution

棣栧厛鍥犱负姣忓垪姣忚鍙兘閫変竴涓暟,鑷劧鎯冲埌浜屽垎鍥惧尮閰?璁╄浣滀负宸﹂儴,鍒椾綔涓哄彸閮?璁╁垪涓庤鍘诲尮閰?褰撳舰鎴愬畬澶囧尮閰?宸﹀彸閮ㄧ偣鏁扮浉绛?宸﹂儴姣忎釜鐐归兘鏈夊搴旂殑鍖归厤鐐?鏃?鍒欏彲鍙?

棰樼洰涓闂渶灏忕殑鏋佸€煎樊,涓攏鑼冨洿寰堝皬[1,100],鎵€浠ユ垜浠灇涓惧尯闂磍en,鐪嬬湅鏉冨€煎湪鏌愪竴鍖洪棿[ l , l+len ]涓殑杈硅兘鍚︿娇鍥惧舰鎴愬畬澶囧尮閰?宸︾鐐规灇涓?瀵逛簬鍖洪棿鎴戜滑鐢ㄤ簩鍒?

Code

#include <cmath>
#include <cstdio>
#include <cstring> 
#include <algorithm>
using namespace std;
const int maxn=100+5,Inf=0x3f3f3f3f;
int n,mat[maxn],rel[maxn][maxn],Max,Min;
bool vis[maxn];
bool Find(int u,int l,int r){
	for(int i=1;i<=n;++i){
		if(rel[u][i]<l||rel[u][i]>r)continue;
		if(!vis[i]){
			vis[i]=1;
			if(!mat[i]||Find(mat[i],l,r)){
				mat[i]=u;return 1;
			}
		}
	}
	return 0;
}
bool cd(int l,int r){
	memset(mat,0,sizeof mat);
	int cnt=0;
	for(int i=1;i<=n;++i){
		memset(vis,0,sizeof vis);
		if(Find(i,l,r))cnt++;
	}
	if(cnt==n)return 1;
	else return 0;
}
int main(){
	int t;scanf("%d",&t);
	while(t--){
		Max=0,Min=Inf;
		scanf("%d",&n);
		for(int i=1;i<=n;++i){
			for(int j=1;j<=n;++j){
				scanf("%d",&rel[i][j]);
				Max=max(Max,rel[i][j]);
				Min=min(Min,rel[i][j]);
			}
		}
		int l=0,r=Max-Min,ans=r;//l鏄尯闂存渶灏忓€?r鏄尯闂存渶澶у€?		while(l<=r){
			int mid=((l+r)>>1);//杩欎釜澶栭潰搴旇鍔犱竴灞傛嫭鍙?mid鏄尯闂撮暱搴?			bool fg=0;
			for(int i=Min;i+mid<=Max;++i){//鏋氫妇宸︾鐐?				if(cd(i,i+mid)){
					ans=min(ans,mid);
					fg=1;
					break;
				}
			}
			if(fg)r=mid-1;
			else l=mid+1;
		}
		printf("%d
",ans);
	}
	return 0;
}

以上是关于hdu2336 (鍖堢墮鍒╂渶澶у尮閰?浜屽垎)的主要内容,如果未能解决你的问题,请参考以下文章

hdu 6406 Taotao Picks Apples 锛?018 Multi-University Training Contest 8 1010锛夛紙浜屽垎锛屽墠缂€鍜岋級

浜屽垎鏌ユ壘娉曞疄鐜版渶浼樺浘鐗囧帇缂╀綋绉苟涓婁紶

Golang-鏌ユ壘(浜屽垎娉曟煡鎵?

CF 1370D 浜屽垎 2e5

浜屽垎鎼滅储

銆愮粡鍏搞€戝甫闅滅鐨勯摵鐮栧潡鈥斺€擫EETCODE 瑕嗙洊