題意:
給你乙個矩陣 ,你能往各個方向走(不走出去就行),每次只能上下左右走一格,問路徑上的點權最大值和最小值的差最小是多少。
思路:
首先 二分最後的答案,
暴力列舉當前的區間是啥。
dfs 就ok 了
(我的**可能有點兒小問題…… 列舉的時候沒有判左上角的點)
(但是ac了哈哈哈)
//by siriusren
#include
#include
#include
using
namespace
std;
int n,map[105][105],a[105][105],maxx=0,minn=120,right,left,mid,ans;
int xx=,yy=;
bool vis[105][105];
bool dfs(int x,int y,int maxx,int minn)
else
if(a[x+xx[i]][y+yy[i]]if(dfs(x+xx[i],y+yy[i],maxx,a[x+xx[i]][y+yy[i]]))return
1; }
else
if(a[x+xx[i]][y+yy[i]]>=minn&&a[x+xx[i]][y+yy[i]]<=maxx)}}
return0;}
int main()
}right=100;left=0;
while(left<=right)}}
if(dfs(1,1,map[1][1],map[1][1]))f=1;
}if(f)right=mid-1,ans=mid;
else left=mid+1;
}printf("%d\n",ans);
}
poj 1759 二分搜線性
題意 有n個燈泡,每個燈泡距離地面高度為hi,現在給了第乙個燈泡的高度a。求最後乙個燈泡的高度b的最大值。解析 這題剛看這怎麼能二分啊.其實是第二個燈泡和最後的高度b是成正相關的,所以去二分猜測第二個燈泡的高度。若第二個燈泡的高度能讓之後的每乙個燈泡高度都大於0,則這個高度是ok的,可以繼續增大。i...
POJ 1064 保證精度二分搜答案
儲存一下思路。思路很簡單就是二分找答案,每次找到乙個值,判斷一下是否可以滿足剪得個數大於等於k,然後一直找下去。主要是這裡for i,0,100 這裡最開始一直卡住了,不知道設定什麼,100就已經可以到10 30了,對於二的精度來說已經完全足夠了。然後就是輸出,一定要注意兩位小數直接pinrtf 2...
二分搜素演算法
二分搜尋演算法的三種情況 推薦部落格,真的寫的非常好!1 當陣列中沒有重複元素時 public int binarysearchimplement int array,int target else if array mid target else if flag return index else...