渡河问题

描述 Description
  Farmer John以及他的N(1 <= N <= 2,500)头奶牛打算过一条河,但他们所
有的渡河工具,仅仅是一个木筏。
  由于奶牛不会划船,在整个渡河过程中,FJ必须始终在木筏上。在这个基础上,木筏上的奶牛数目每增加1,FJ把木筏划到对岸就得花更多的时间。
  当FJ一个人坐在木筏上,他把木筏划到对岸需要M(1 <= M <= 1000)分钟。当木筏搭载的奶牛数目从i-1增加到i时,FJ得多花M_i(1 <= M_i <= 1000)分钟才能把木筏划过河(也就是说,船上有1头奶牛时,FJ得花M+M_1分钟渡河;船上有2头奶牛时,时间就变成M+M_1+M_2分钟。后面的依此类推)。那么,FJ最少要花多少时间,才能把所有奶牛带到对岸呢?当然,这个时间得包括FJ一个人把木筏从对岸划回来接下一批的奶牛的时间。
输入格式 Input Format
* 第1行: 2个用空格隔开的整数:N 和 M
* 第2..N+1行: 第i+1为1个整数:M_i
输出格式 Output Format
第1行: 输出1个整数,为FJ把所有奶牛都载过河所需的最少时间
样例输入 Sample Input

5 10
3
4
6
100
1

输入说明:
FJ带了5头奶牛出门。如果是单独把木筏划过河,FJ需要花10分钟,带上1头奶牛的话,是13分钟,2头奶牛是17分钟,3头是23分钟,4头是123分钟,将5头一次性载过去,花费的时间是124分钟。

样例输出 Sample Output

50
输出说明:
Farmer John第一次带3头奶牛过河(23分钟),然后一个人划回来(10分钟),最后带剩下的2头奶牛一起过河(17分钟),总共花费的时间是23+10+17 = 50分钟。

 

简单dp问题....以没一头牛作为一遍运送的结束点,那么对于这个我们到底用不用在这里先放下一波牛进行一波判断即可,数组第i位预处理前缀和,状态转移方程:

for(int i=1;i<=n;i++)

 for(int j=0;j<i;j++)

  dp[i]=min(dp[i],dp[j]+a[i-j]+m);

代码如下?也许有锅,至少我觉得没问题...还过掉了,要是数据水那也怪不得我....

#include <bits/stdc++.h>
#define maxn 100086
using namespace std;
int f[maxn],n,m,m_cow[maxn];
int main(){
  memset(m_cow,0,sizeof(m_cow));
  memset(f,10,sizeof(f));
  cin>>n>>m;
  m_cow[0]=m;
  for(int i=1;i<=n;i++){
    cin>>m_cow[i];
    m_cow[i]+=m_cow[i-1];
  }
  for(int i=1;i<=n;i++){
    f[i]=m_cow[i];
    for(int j=0;j<i;j++)
      f[i]=min(f[i],f[j]+m_cow[i-j]+m);
  }
  cout<<f[n]<<endl;
  return 0;
}

转载于:https://www.cnblogs.com/ywjblog/p/8603185.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值