原题传送门

题目背景

张骞于公元前138年曾历尽艰险出使过西域。加强了汉朝与西域各国的友好往来。从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚、西亚和欧洲,将那里的香料、良马传进了我国。每当人们凝望荒凉的大漠孤烟,无不引起对往日商贸、文化繁荣的遐想……

题目描述

小仓鼠带着货物,从中国送到安息,丝绸之路包括起点和终点一共有N+1个城市,0号城市是起点长安,N号城市是终点巴格达。要求不超过M天内必须到达终点。一天的时间可以从一个城市到连续的下一个城市。从i-1城市到i城市距离是Di。

大家都知道,连续赶路是很辛苦的,所以小仓鼠可以在一个城市时,可以有以下选择:

  • 移动:向下一个城市进发

  • 休息:呆在原来的城市不动

沙漠天气变化无常,在天气很不好时,前进会遇到很多困难。我们把M天的第j(1<=j<=M)天的气候恶劣值记为Cj。从i-1城市移动到i城市在第j天进发时,需要耗费Di*Cj的疲劳度。

不过小仓鼠还是有选择权的,可以避开比较恶劣的天气,休息是不会消耗疲劳值的。现在他想知道整个行程最少要消耗多少疲劳值。

输入格式

第一行2个整数N,M

连续N行每行一个整数Dj

连续M行每行一个整数Cj

输出格式

一个整数,表示最小疲劳度

输入输出样例

输入样例#1

3 5
10
25
15
50
30
15
40
30

输出样例#1

1125

题解

#include <bits/stdc++.h>
#ifndef ONLINE_JUDGE
#pragma GCC optimize(2)
//#pragma GCC optimize(3)
#endif
#define INF 0x3f3f3f3f
#define N 100005
#define ll long long
#define ull unsigned long long
#define il inline
#define rg register
using namespace std;
int d[1001][1001]; //记录计算过的答案,记忆化数组
int a[1001], c[1001];
// a[i]表示从第i-1号城市到第i号城市的距离,c[i]表示第i天的天气恶劣程度
int n, m;
// dfs(x,y)表示仓鼠第x天,在y市时走到终点要消耗最少体力
int dfs(int x, int y)
{//如果到底终点城市巴格达,就不需要再消耗体力了if (y == n)return 0;//如果用时大于m天了,说明到不了if (x > m)return INF;//如果已经计算过这种情况了,直接返回计算过的答案if (d[x][y])return d[x][y];//否则有两种选择//不走,天数+1,疲劳度不变,城市不变//走,天数+1,城市+1,疲劳度+=到下一个城市的距离a[y+1] 乘上 第x天天气的恶劣程度c[x]//最佳答案为这两种选择中疲劳度小的//*别忘了记忆化return d[x][y] = min(dfs(x + 1, y), dfs(x + 1, y + 1) + a[y + 1] * c[x]);
}
int main()
{cin.sync_with_stdio(false);cin >> n >> m;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= m; i++)cin >> c[i];//刚开始是第1天,小仓鼠在0号城市长安cout << dfs(1, 0) << endl;system("pause");return 0;
}

Luogu P3399 丝绸之路 题解相关推荐

  1. P3399 丝绸之路(线性二维dp)

    P3399 丝绸之路 题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚. ...

  2. 洛谷10月月赛Round.1| P3399 丝绸之路 [DP]

    题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚.西亚和欧洲,将那里的香 ...

  3. 【luogu P3946 ことりのおやつ】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3946 交好几遍是因为虽然能过一直有提醒..强迫症qwq #include <bits/stdc++.h ...

  4. Luogu P1550 [USACO08OCT]打井Watering Hole

    0号结点:农夫John山泉天然矿泉水( by Luogu第一篇题解 #include<cstdio> #include<cstring> #include<algorit ...

  5. Luogu 2495 [SDOI2011]消耗战

    BZOJ 2286 传说中的虚树经典题. 放上我觉得讲的很好的Luogu置顶题解.       传送门 首先考虑一个暴力的$dp$,设$f_x$表示切断$x$的子树中的所有特殊点且保留$x$的最小代价 ...

  6. 洛谷P1035题解 [NOIP2002 普及组] 级数求和

    原文地址:https://luvletter.blog.luogu.org/p1035-ti-jie 题解 本体难度不大,但要注意计算和的时候要使用double类型,千万不能使用float类型,不然会 ...

  7. 洛谷P1055题解 [NOIP2008 普及组] ISBN 号码

    原文地址:https://luvletter.blog.luogu.org/p1055-ti-jie 题解 超级简单的一题,就是要注意输入和输出的分隔符的问题以及ASCII码中0~9这10个数字对应的 ...

  8. 【分块】[LUOGU 旅行规划] 分块+二分+凸包优化

    题目: 题目链接:[LUOGU 旅行规划] 题解: (由于这个,,我竟然还去写了二维凸包的模板题作为练习,,,然而,一点用都没有,,,,) 先解释一下题面的意思:就是一个区间加的操作,再加上一个区间的 ...

  9. 【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)

    P5734 [深基6.例6]文字处理软件 题目描述 你需要开发一款文字处理软件.最开始时输入一个字符串(不超过 100 个字符)作为初始文档.可以认为文档开头是第 0 个字符.需要支持以下操作: 1 ...

最新文章

  1. 苹果发布会体现出的未来趋势
  2. Xamarin.iOS真机测试报错
  3. easyui的Pagination单独使用
  4. 四川网络推广介绍什么样的网站架构更能吸引蜘蛛爬行抓取?
  5. R语言和 Python —— 一个错误的分裂
  6. 自定义控件---重写Listbox实现item图标变换和item点击事件
  7. Mybatis和Hibernate区别
  8. 研究解决CLOB字段IO问题的方法
  9. FFmpeg 以及帧率的解释
  10. get请求中文乱码处理方法
  11. 一定要会的Python爬虫技能,搜索名字即可下载全文小说?
  12. cmos电路多余输入端能否悬空_CMOS和TTL集成门电路多余输入端的处理方法
  13. 《谁动了我的奶酪》读后感
  14. xyoj 6042:让人头疼的“双十一”
  15. arduino笔记41:直流电机 + 步进电机参数、原理
  16. 人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
  17. linux 32位系统运行eclipse报错:eclipse: symbol lookup error,.so: undefined symbol: XXXg_bus_own_name
  18. 百微秒时延,腾讯云云硬盘CBS架构深度解密
  19. Python宿舍管理系统 毕业设计-附源码231642
  20. 一个很酷的基于OpenGL + C#的Wince界面开源程序

热门文章

  1. Cisco AP胖瘦切换
  2. 所有私有、共享IP段(全)
  3. Win10任务图标变白
  4. datastage教程
  5. 基于百度翻译API和python的批量地名翻译的实现
  6. [转]2d游戏开发:游戏地图编辑器
  7. Vue表格滚动到页面顶部,表头固定
  8. matlab的幅度调制函数ammod
  9. OpenSees学习记录【二】:柱构件的Pushover分析
  10. 工作上的问题,微软crm导出execl限制为1w行