第一题补充一个递归 #include<iostream> (720)#include<vector> #include<algorithm> (831)#include<map> using namespace std; int min_cost(int n, int m, int a, int b, map<pair<int, int>, int> &mp){ if(m % n == 0) return 0; pair<int, int> curr = make_pair(n, m); if(mp.find(curr) != mp.end()) return mp[curr]; int cost = min(a + min_cost(n - 1, m, a, b, mp), b + min_cost(n, m + 1, a, b, mp)); mp[make_pair(n, m)] = cost; return cost; } int main(){ int n, m, a, b; while(cin >> n >> m >> a >> b){ map<pair<int, int>, int> mp; cout << min_cost(n, m, a, b, mp) << endl; } return 0; }

相关推荐

12-19 20:28
已编辑
门头沟学院 Java
美团履约 全栈工程师 (n+1)*15.5 其他
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务