Luogu P3399 丝绸之路 题解
原题传送门
题目背景
张骞于公元前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 丝绸之路 题解相关推荐
- P3399 丝绸之路(线性二维dp)
P3399 丝绸之路 题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚. ...
- 洛谷10月月赛Round.1| P3399 丝绸之路 [DP]
题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚.西亚和欧洲,将那里的香 ...
- 【luogu P3946 ことりのおやつ】 题解
题目链接:https://www.luogu.org/problemnew/show/P3946 交好几遍是因为虽然能过一直有提醒..强迫症qwq #include <bits/stdc++.h ...
- Luogu P1550 [USACO08OCT]打井Watering Hole
0号结点:农夫John山泉天然矿泉水( by Luogu第一篇题解 #include<cstdio> #include<cstring> #include<algorit ...
- Luogu 2495 [SDOI2011]消耗战
BZOJ 2286 传说中的虚树经典题. 放上我觉得讲的很好的Luogu置顶题解. 传送门 首先考虑一个暴力的$dp$,设$f_x$表示切断$x$的子树中的所有特殊点且保留$x$的最小代价 ...
- 洛谷P1035题解 [NOIP2002 普及组] 级数求和
原文地址:https://luvletter.blog.luogu.org/p1035-ti-jie 题解 本体难度不大,但要注意计算和的时候要使用double类型,千万不能使用float类型,不然会 ...
- 洛谷P1055题解 [NOIP2008 普及组] ISBN 号码
原文地址:https://luvletter.blog.luogu.org/p1055-ti-jie 题解 超级简单的一题,就是要注意输入和输出的分隔符的问题以及ASCII码中0~9这10个数字对应的 ...
- 【分块】[LUOGU 旅行规划] 分块+二分+凸包优化
题目: 题目链接:[LUOGU 旅行规划] 题解: (由于这个,,我竟然还去写了二维凸包的模板题作为练习,,,然而,一点用都没有,,,,) 先解释一下题面的意思:就是一个区间加的操作,再加上一个区间的 ...
- 【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)
P5734 [深基6.例6]文字处理软件 题目描述 你需要开发一款文字处理软件.最开始时输入一个字符串(不超过 100 个字符)作为初始文档.可以认为文档开头是第 0 个字符.需要支持以下操作: 1 ...
最新文章
- 苹果发布会体现出的未来趋势
- Xamarin.iOS真机测试报错
- easyui的Pagination单独使用
- 四川网络推广介绍什么样的网站架构更能吸引蜘蛛爬行抓取?
- R语言和 Python —— 一个错误的分裂
- 自定义控件---重写Listbox实现item图标变换和item点击事件
- Mybatis和Hibernate区别
- 研究解决CLOB字段IO问题的方法
- FFmpeg 以及帧率的解释
- get请求中文乱码处理方法
- 一定要会的Python爬虫技能,搜索名字即可下载全文小说?
- cmos电路多余输入端能否悬空_CMOS和TTL集成门电路多余输入端的处理方法
- 《谁动了我的奶酪》读后感
- xyoj 6042:让人头疼的“双十一”
- arduino笔记41:直流电机 + 步进电机参数、原理
- 人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
- linux 32位系统运行eclipse报错:eclipse: symbol lookup error,.so: undefined symbol: XXXg_bus_own_name
- 百微秒时延,腾讯云云硬盘CBS架构深度解密
- Python宿舍管理系统 毕业设计-附源码231642
- 一个很酷的基于OpenGL + C#的Wince界面开源程序