【NOIP2015TGD2T1】poj3258 River Hopscotch
来源:互联网 发布:广州电商美工培训 编辑:程序博客网 时间:2024/06/06 17:03
Description
Every year the cows hold an event featuring a peculiar version of
hopscotch that involves carefully jumping from rock to rock in a
river. The excitement takes place on a long, straight river with a
rock at the start and another rock at the end, L units away from the
start (1 ≤ L ≤ 1,000,000,000). Along the river between the starting
and ending rocks, N (0 ≤ N ≤ 50,000) more rocks appear, each at an
integral distance Di from the start (0 < Di < L).To play the game, each cow in turn starts at the starting rock and
tries to reach the finish at the ending rock, jumping only from rock
to rock. Of course, less agile cows never make it to the final rock,
ending up instead in the river.Farmer John is proud of his cows and watches this event each year. But
as time goes by, he tires of watching the timid cows of the other
farmers limp across the short distances between rocks placed too
closely together. He plans to remove several rocks in order to
increase the shortest distance a cow will have to jump to reach the
end. He knows he cannot remove the starting and ending rocks, but he
calculates that he has enough resources to remove up to M rocks (0 ≤ M
≤ N).FJ wants to know exactly how much he can increase the shortest
distance before he starts removing the rocks. Help Farmer John
determine the greatest possible shortest distance a cow has to jump
after removing the optimal set of M rocks.Input Line 1: Three space-separated integers: L, N, and M Lines
2..N+1: Each line contains a single integer indicating how far some rock is away from the starting rock. No two rocks share the same
position.Output Line 1: A single integer that is the maximum of the shortest
distance a cow has to jump after removing M rocks
二分答案,求解转判定。
对于每一个答案,从左往右贪心即可。如果当前长度不够,那就需要移走石头。如果够了,重开一段。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int l,n,m,dis[50010],a[50010];bool ok(int x){ int i,j,k,cnt=0,now=0; for (i=1;i<=n;i++) { now+=dis[i]; if (now>=x) now=0; else cnt++; } return cnt<=m;}int main(){ int i,j,k,x,y,z,lf,rt,mid; scanf("%d%d%d",&l,&n,&m); for (i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for (i=1;i<=n;i++) dis[i]=a[i]-a[i-1]; dis[n+1]=l-a[n]; n++; lf=0; rt=l; while (lf<rt) { mid=(lf+rt+1)/2; if (ok(mid)) lf=mid; else rt=mid-1; } printf("%d\n",lf);}
- 【NOIP2015TGD2T1】poj3258 River Hopscotch
- POJ3258:River Hopscotch
- POJ3258-River Hopscotch
- POJ3258--River Hopscotch
- poj3258 River Hopscotch
- POJ3258 River Hopscotch二分
- POJ3258:River Hopscotch(二分)
- POJ3258 River Hopscotch
- 贪心 - poj3258 River Hopscotch
- POJ3258-- River Hopscotch
- River Hopscotch(二分POJ3258)
- POJ3258--------River Hopscotch
- poj3258 River Hopscotch(二分)
- POJ3258 River Hopscotch
- POJ3258 River Hopscotch
- POJ3258-River Hopscotch
- POJ3258-River Hopscotch二分
- 【二分法】POJ3258-River Hopscotch
- UIView
- Java8中的Lambda表达式概述
- RAID各级别及其特性
- C修饰符const
- Flex 布局教程:语法篇
- 【NOIP2015TGD2T1】poj3258 River Hopscotch
- 二叉树的层次遍历----java实现
- C++卷积神经网络实例:tiny_cnn代码详解(10)——layer_base和layer类结构分析
- C#中Dictionary
- windows中用批处理文件增加和更改环境变量
- storyboard文件的认识
- NSURLConnection简单使用
- C++卷积神经网络实例:tiny_cnn代码详解(11)——层结构容器layers类源码分析
- pyqt 加载资源文件