美团算法笔试
第一题,工作安排
第一周不能选复杂的任务
#include<bits/stdc++.h> using namespace std; int main() { int N = 0; cin >> N; if (N == 0) cout << 0 << endl; vector<pair<float, float>> vec(N); vector<float> dp(N, 0); for (int i = 0; i < N; ++i) { float l = 0., h = 0.; cin >> l >> h; vec[i] = make_pair(l, h); } for (int i = 0; i < int(vec.size()); ++i) { float v = 0; if ((i - 2) >= 0) v = dp[i - 2]; if (i == 0) dp[i] = vec[i].first; else dp[i] = max(vec[i].first + dp[i - 1], vec[i].second + v); } cout << dp[N - 1] << endl; return 0; }