1007 独木桥

1007 独木桥

模拟贪心,阅读理解类型的题
看似复杂,但是代码很好想
第一点,我们知道,两个士兵表面上是后退而过,但是实际上,是两个人穿过去了
这个思路必须得明白
所以我们在一次桥上求一求左边右边走哪一个时间长(或者时间短),左边是l-a+1,右边是接着走a然后对所有的方案进行取最大的那一组,为什么是最大的?因为我们想,最快的撤离了,但是最慢的没有撤离,所以我们得为慢一点的考虑
-----------重新------------
太差了
这个题我真的是读都不想读
真的好难理解
最少需要多少时间就可能全部撤离独木桥 最多需要多少时间就可能全部撤离独木桥
两个输出的结果
这个题就是一个枚举,在一个一条线的坐标轴上,一些点上站着人,他们要走出这个独木桥
因为他们没有什么区别,我可以把i当作那个人j也可以把那个j当作i,他们没有什么区别,所以,独木桥根本不用理会宽度,我们直接当成一个人,因为无论你是小明小红,都得撤离下去,在大局里面的统计,都要离开这个独木桥
所以我们没必要计算独木桥的宽度,没必要区分小明还是小红
至于这个最大时间最小时间
我在p点,左边右边最大的点,然后总体的最大的,就是总共的最大时间
我在p点,左边右边最小的点,然后总体的最大的,就是总共的最小时间,为什么前面最大后面就最小了,因为我们要最快最快,就得考虑一下慢的(时间大的),不能按照快的来吧,按照快的来计算,人家慢的还没还有撤出来呢

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int l,n,a;
int maxn,minn;
int main()
{
	cin>>l>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a;
		maxn=max(maxn,max(l-a+1,a));
		minn=max(minn,min(l-a+1,a));//比较当前退桥的时候哪一种方法最小
        /*一共的时间,因为,有小的有大的,不能取小的*/
	}
	cout<<minn<<" "<<maxn<<endl;
	return 0;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值