第一行 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]);
}
}

最新文章

  1. Mongodb启动命令mongod参数说明
  2. easyui-panel 滚动条禁用
  3. STC12C5A60S2 常用的中断源和相关寄存器
  4. 【翻译】Kinect Studio是? 三月 SDK Update的新机能
  5. [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
  6. 【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
  7. CAKeyframeAnimation 旋转动画
  8. 01-08-02【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider
  9. SqlServer 事务日志传输
  10. java - String 浅谈
  11. IIS7.0出错的解决方案 IIS 状态代码:IIS详细错误代码以及解释
  12. [Elasticsearch] 邻近匹配 (一) - 短语匹配以及slop參数
  13. hdu1356&amp;hdu1944 博弈论的SG值(王道)
  14. JavaSe:Comparator
  15. HashiCorp Vault介绍
  16. 描述逻辑(DL)基础知识
  17. Python基础(2)——列表、字典、数据运算
  18. OC中几种延时操作的比較
  19. Group Normalization
  20. 企业招聘:UX设计师需要满足他们哪些期望?

热门文章

  1. 函数内部的函数中的this都是指向window
  2. [Hadoop 周边] Hadoop资料收集【转】
  3. hdu------(3549)Flow Problem(最大流(水体))
  4. UITabBarController加载之后不显示sub view controller
  5. UserAgent:通过浏览器获取用户浏览器等信息
  6. SAP资产明细报表
  7. SAP 预制发票时扣除已预制的数据
  8. WordPress怎么在页面上添加目录
  9. 小心buffer的拼接问题 --转
  10. sublime text2 解决中文乱码