題意:乙個長為l的河,中間有n個石子,小青蛙需要跳少於m次過河,判斷小青蛙每次跳躍最大距離的最小值
最大值最小,用二分
sample input
6 1 2
225 3 3112
18sample output411
2015-07-27:備戰區域賽專題
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8view codeusing
namespace
std;
9#define mod 1000000007
10const
int inf=0x3f3f3f3f;11
const
double eps=1e-5
;12 typedef long
long
ll;13
#define cl(a) memset(a,0,sizeof(a))
14#define ts printf("*****\n");
15const
int maxn=500010;16
intn,m,tt,l;
17int
a[maxn];
18int check(int
m)19
30while(m>=a[o]-a[k])
3134 k=o-1
;35 tot+=a[o]-a[k];
36 w++;37}
38return
w;39}40
intmain()
4163
else l=mid+1;64
}65 printf("
%d\n
",ans);66}
67 }
1 #include2 #include3 #include4 #include5 #include6 #include7using
namespace
std;
8const
int maxn=500010;9
intn,m,t,l;
10int
d[maxn];
11bool fun(int x) //
判斷青蛙跳x的時候需要跳幾次過河,貪心,每次選擇能跳最遠的
1222
if(cnt<=m) return
true;23
else
return
false;24
}25intmain()
2645 printf("
%d\n
",ans);46}
47 }
二分 HDU 4004 青蛙過河
第一行給出l,n,m。分別代表河水的寬,河水中有n個石頭,和青蛙最多能跳m次。青蛙只能跳到石頭上,且預設可以跳無限遠。下面給出n個石頭的座標。問 要求使得青蛙跳過河的這次所有的跳躍中,跳躍最遠的那次距離盡可能最小,輸出這個值 1 如果m n,那一定是兩兩相距最遠的那個距離。2 資料很大,暴力去查詢每...
HDU 6496 大廈 暴力 二分
現在就讓我們來大膽地暢想2050。我們乘坐著無人駕駛的飛行汽車,馳騁在城市的街頭,感受著都市的繁華。我們看到了一棟高樓大廈,大廈的牆面可以看做乙個 w h 的矩形,我們把它的左下角當成 0,0 右上角當成 w,h 上面分布著一些led燈,這些led燈與地面呈45度傾斜,並且從矩形的邊界延伸到另一邊界...
HDU 4417 (二分 區間第k大)
查詢區間 l,r 中有多少數 比給定的 h 小。我們可以這麼想,h 一定會比 區間的第 x 大 第 x 1 小。怎麼確定 x。這是乙個單調的問題,所以二分 區間第 k 大就可以確定了。include include include include using namespace std const ...