【不积跬步_无以至千里】 ccnu_2016_summer_week1(2)_贪心 - C

该博客介绍了如何使用C语言实现贪心算法解决最短时间过河问题。通过分析题意,理解需要以较慢者为时间基准,优化过河策略。博主提供了一个解决方案,首先对人员过河时间进行排序,然后递归处理不同人数的情况,以达到全局最优。代码中出现了一些错误,如忽视了比较环节和输出格式问题,但最终修正并给出了正确答案。
摘要由CSDN通过智能技术生成

题意:最短时间来回过河。仅有一艘船,并且每次只能够载两个人,以花费时间较长者为准。

数据:t组案例 每组案例给定人数n和每个人过河时间t;

思路:1.从划船返回时间考虑,即以过河时间最短者为准。这时候返回时间最短,但是对于花费时间较长过河者并没有优化时间消费。

          2.希望花费时间比较多的人能够乘同一艘船过河。

 算法:贪心。将问题简化为一个个子问题。当n<=3的时候,可以直接输出。然后根据局部最优解,重复比较1和2的时间消费。

#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1010];
int b[1010];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        int sum = 0;
        for(int i =0;i<n;i++)
            {
                scanf("%d",&a[i]);
                sum+=a[i];
            }


       sort(a,a+n);


       b[1]=a[0];
       b[2]=a[1];
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值