二分
ConwayTian
一切再来,为时未晚。
毁掉你人生的,其实是你内心的平庸,是你失去追求卓越的那个瞬间。
展开
-
POJ 3122 Pie 二分
题意:有N块馅饼,要分给F+1个人。 1.可以将一块馅饼分成若干份,但是每个人最多只能拿一块馅饼。 2.所有人的馅饼面积必须i相同。 求每个人最多能拿到的馅饼的面积。 #include #include using namespace std; const double eps = 1e-6; const double pi = acos(-1.0); int R[20000原创 2012-04-06 21:20:57 · 531 阅读 · 0 评论 -
HDU 4004 The Frog's Games 二分+贪心
题意:在青蛙的世界里有一项竞赛,要求青蛙在给定的跳跃次数M 以内跳过河。我们预先知道河宽L,河上有N块石头,青蛙可以在石头上停留。求青蛙的每次跳跃至少跳多远才能顺利过河。 题解:当青蛙跳长等于河宽L时它一定能跳过河。那么通过二分跳长,求出能过河的最短跳长。 #include #include using namespace std; int L, n, m; int sto原创 2011-09-05 21:20:58 · 1341 阅读 · 0 评论 -
POJ 3723 Monthly Expense 二分
题意:给你n个值,要求将其划分成m部分(顺序不能打乱),如何划分使得最大部分的值最小。 题解:二分,对于每一个中间值,检测一次。 #include int N, M; int spend[200000]; bool check ( int num ) { int i, sum, cnt = 0; for ( i = 0; i < N; ) {原创 2012-04-05 22:39:34 · 681 阅读 · 0 评论 -
POJ 1905
题意:给出一个弓形的弧长和弦长,求弧的最高点到弦的垂直距离。 题解:先推出公式,然后二分。注意这题的二分对象可以有几种选择。 第一次直接选了垂直距离h:L' = [(4*h^2) / (4*h)] * arcsin[ (4*h*l) / (4*h^2+l^2) ]。这个公式单调性不明显,并且比较复杂,所以不考虑。 然后选择的是角度α: 2*α*R = L' R*sinα = l/2 所原创 2012-04-06 20:31:07 · 874 阅读 · 0 评论 -
POJ 3258 River Hopscotch 二分
题意:奶牛们喜欢在河里的石头上玩跳房子游戏,每次从一个石头跳到另一个石头上。现在知道起点的石头,终点的石头,以及终点石头到起点石头的距离L。又知道起点-终点之间还有N个石头,每个石头到起点的距离记为rock[i]。Farmer John想去掉N个石头中的M个,问如何去掉使得任意两块石头之间的距离的最小值最大。 #include #include using namespace std;原创 2012-04-06 16:38:33 · 920 阅读 · 0 评论