洛谷P2904 [USACO08MAR]跨河River Crossing
来源:互联网 发布:淘宝前端 编辑:程序博客网 时间:2024/05/15 03:10
题目描述
Farmer John is herding his N cows (1 <= N <= 2,500) across the expanses of his farm when he finds himself blocked by a river. A single raft is available for transportation.
FJ knows that he must ride on the raft for all crossings and that that adding cows to the raft makes it traverse the river more slowly.
When FJ is on the raft alone, it can cross the river in M minutes (1 <= M <= 1000). When the i cows are added, it takes M_i minutes (1 <= M_i <= 1000) longer to cross the river than with i-1 cows (i.e., total M+M_1 minutes with one cow, M+M_1+M_2 with two, etc.). Determine the minimum time it takes for Farmer John to get all of the cows across the river (including time returning to get more cows).
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一个人把木筏从对岸划回来接下一批的奶牛的时间。
输入输出格式
输入格式:Line 1: Two space-separated integers: N and M
- Lines 2..N+1: Line i+1 contains a single integer: M_i
- Line 1: The minimum time it takes for Farmer John to get all of the cows across the river.
输入输出样例
5 10 3 4 6 100 1
50
说明
There are five cows. Farmer John takes 10 minutes to cross the river alone, 13 with one cow, 17 with two cows, 23 with three, 123 with four, and 124 with all five.
Farmer John can first cross with three cows (23 minutes), then return (10 minutes), and then cross with the last two (17 minutes). 23+10+17 = 50 minutes total.
神一般的题目。。。
看懂题目就发现是简单的01背包,转移方程:
f[i]=min(f[i],f[i-j]+t[i]),t[i]表示将 i 头牛运至对岸需要的时间。
附代码:
#include<iostream>#include<algorithm>#include<cstdio>#define MAXN 2510using namespace std;int n,m,t[MAXN],f[MAXN];inline int read(){int date=0,w=1;char c=0;while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}return date*w;}int main(){int x;n=read();m=read();t[0]=m*2;for(int i=0;i<MAXN;i++)f[i]=999999999;for(int i=1;i<=n;i++){x=read();t[i]=t[i-1]+x;}f[0]=0;for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)f[i]=min(f[i],f[i-j]+t[j]);printf("%d\n",f[n]-m);return 0;}
- 洛谷P2904 [USACO08MAR]跨河River Crossing
- 【洛谷2904】[USACO08MAR]跨河River Crossing(动态规划)
- [Usaco08Mar] River Crossing
- [BZOJ1617]跨河crossing the river
- Crossing River
- Crossing River
- Crossing River
- Crossing River
- Crossing River
- River Crossing
- Crossing River
- PKU 1700 Crossing River
- River Crossing解题报告
- pku 1700 Crossing River
- POJ1700 Crossing River DP
- Crossing River POJ1700
- poj 1718 River Crossing
- poj 1700 Crossing River
- C++面向对象思想笔记
- VirtualBox中安装CentOS7后无法上网的解决方案(转)
- ios加密
- 程序问题
- Qt creator工程项目移植时因环境变换造成qmake错误的解决方案 1.问题描述:移植从他机上的qt工程项目,打开时提示: Qt Creator找到了一个由其他开发环境创建的设置文件,或许
- 洛谷P2904 [USACO08MAR]跨河River Crossing
- springmvc不进入Controller导致404
- java集合分析(8):AbstractSequentialList
- Java图案绘制
- 异步httpclient---HttpAsyncClient的使用
- elasticsearch 6.0安装手册
- MySQL Galera Cluster 快速删除大表
- ros总线舵机机械臂串口协议源码
- 一例Unable to determine composite primary key ordering for type错误的解决