刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
简答题
交易市场
市场里面一共有n种物品,有m种交易途径,每个交易途径可以由(x,y,z)表示,意思是可以用第x种物品换成第y种物品,并且得到z元的收益(z均大于0)。最开始你只有第一种物品,请问最多可以赚取多少收益。
时间限制:1000
内存限制:65536
输入
第一行两个正整数n和m(n ≤ 1000,m ≤ 4000) 接下来m行,每行三个正整数x, y, z,意思是可以用第x种物品换成第y种物品,并且得到z元的收益。(1 ≤ x,y ≤ n, 1 ≤ z ≤ 100)
输出
一个整数表示最大收益,如果可以赚取无穷多的收益则输出1000000000
样例输入
3 3
1 2 2
2 3 3
1 3 4
样例输出
5
使用微信搜索喵呜刷题,轻松应对考试!
答案:
动态规划求解,时间复杂度O(nm),空间复杂度O(n)。具体实现略。
解析:
本题是一个典型的动态规划问题。我们可以定义dp[i]为拥有第i种物品时的最大收益。由于每个交易途径可以由(x,y,z)表示,我们可以将问题转化为一个物品之间的转移问题。对于每个交易途径,我们可以选择保留当前物品继续获取收益,或者选择交换物品以获取更大的收益。因此,我们可以使用动态规划来求解这个问题。状态转移方程为:dp[i] = max(dp[i], dp[x] + z),其中(x,y,z)表示一个交易途径。最终答案为dp[n],即拥有第n种物品时的最大收益。由于题目中有内存限制,我们需要优化算法的空间复杂度,可以使用滚动数组等方法来减少空间消耗。时间复杂度为O(nm),空间复杂度为O(n)。
创作类型:
原创
本文链接:交易市场 市场里面一共有n种物品,有m种交易途径,每个交易途径可以由(x,y,z)表示,意思是可以用
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



