第一行 t  表示有几组测试数据 .

每组测试数据的 第一行是 n, m   .     然后 下面有n行数据  .

题意:有1个人和N只羊要过河。一个人单独过河花费的时间是M,每次带一只羊过河花费时间M+M1,带两只羊过河花费时间M+M1+M2……给出N、M和Mi,问N只羊全部过河最少花费的时间是多少。

  相当于 , 羊都是一样的 , 但是羊 数量的不同 , 导致该羊 在  船上的增加水阻力的大小也不同 , Mi 是不论那只羊 , 只要数量是 i 那么该羊在船上就增加了 Mi 个阻力 .

理解了题意 , 接下来就是  状态转移了.

 #include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
#include<limits.h>
using namespace std;
int dp[],time1[];
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&time1[i]);
time1[i]=time1[i]+time1[i-]; // 这也算是 惯用手段了 .
}
for(int i=;i<=n;i++)
{
dp[i]=time1[i]+m; // 默认一下 , 前 i 只羊的最短用时
for(int j=;j<i;j++)
{
dp[i]=min(dp[i],dp[i-j]+dp[j]+m); // 现在 虽然 dp[i] 是不是最小 是未知的 , 但是 i 之前的 都已经是已知的了 . 可以这样 晚饭一次 看看能不能节省时间
}
}
printf("%d\n",dp[n]);
}
}

River Crossing 简单的动态规划 .的更多相关文章

  1. 第六届河南省赛 River Crossing 简单DP

    1488: River Crossing Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 83  Solved: 42 SubmitStatusWeb ...

  2. [bzoj1617][Usaco2008 Mar]River Crossing渡河问题_动态规划

    River Crossing渡河问题 bzoj-1617 Usaco-2008 Mar 题目大意:题目链接. 注释:略. 想法:zcs0724出考试题的时候并没有发现这题我做过... 先把m求前缀和, ...

  3. USACO River Crossing

    洛谷 P2904 [USACO08MAR]跨河River Crossing https://www.luogu.org/problem/P2904 JDOJ 2574: USACO 2008 Mar ...

  4. BZOJ1617: [Usaco2008 Mar]River Crossing渡河问题

    1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 654  Solved: 4 ...

  5. BZOJ 1617: [Usaco2008 Mar]River Crossing渡河问题( dp )

    dp[ i ] = max( dp[ j ] + sum( M_1 ~ M_( i - j ) ) + M , sum( M_1 ~ M_i ) ) ( 1 <= j < i )  表示运 ...

  6. BZOJ 1617: [Usaco2008 Mar]River Crossing渡河问题

    题目 1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec  Memory Limit: 64 MB Description Farmer ...

  7. ny716 River Crossing

    River Crossing 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 Afandi is herding N sheep across the expanses ...

  8. bzoj1617 / P2904 [USACO08MAR]跨河River Crossing

    P2904 [USACO08MAR]跨河River Crossing 显然的dp 设$f[i]$表示运走$i$头奶牛,木筏停在未过河奶牛一侧所用的最小代价 $s[i]$表示一次运$i$头奶牛到对面的代 ...

  9. 1617: [Usaco2008 Mar]River Crossing渡河问题(dp)

    1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1219  Solved:  ...

随机推荐

  1. 添加SSH密钥到GitHub

    $ clip < ~/.ssh/id_rsa.pubbash: /c/Users/UsersName/.ssh/id_rsa.pub: No such file or directory [转] ...

  2. Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.

    使用pip install安装命令时,会报错:You are using pip version 7.1.2, however version 8.1.1 is available. 尝试了推荐解决办 ...

  3. hdu 4315 Climbing the Hill(阶梯博弈转nim博弈)

    Climbing the Hill Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. 开源牛人 zcbenz

    事情是这样的,微软推出了Visual Studio Code,我很好奇他怎么做跨平台的,所以就找找资料,在他的网站中是这么描述的: Architecturally, Visual Studio Cod ...

  5. DataOdinalRegression

    clear name={'SCV1V1','SVC1VA','SVR','CSSVC','SVMOP','NNOP','ELMOP','GPOR','KDLOR','POM',... 'NNPOM', ...

  6. 算法——js(Fibonacci数列)

    斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )以兔子繁殖为例子而引入,故又称为“兔子数列”,指 ...

  7. 一段linux shell 代码涉及for循环和if esle

    if [ 0 -ne $# ]; then echo "USAGE: prog [IN]input_file" >&2; exit 1;fisource /etc/p ...

  8. c# 关键字delegate、event(委托与事件)[MSDN原文摘录][2]

    //Demo1:Declaring an event in an interface and implementing it in //a class. // event_keyword.cs usi ...

  9. Ubuntu 查看/修改文件编码

    使用enca工具可以查看和修改文件编码 1.安装 sudo apt-get install enca 2.使用 查看文件编码 enca –L zh_CN file_name 修改文件编码 enca – ...

  10. HookIAT的启动程序

    // 启动程序.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include &l ...