楼主牛批,第二题看了你的发现可以直接一维dp,代表前i个人最少购票时间,只有我这么菜的笔试的时候才会去暴力解了😭 void formatTime(int sec) { int h = 0, m = 0, s = 0; s = sec; h = s / 3600; m = (s - h * 3600) / 60; s = s - h * 3600 - m * 60; h += 8; string suf = (h <= 12 ? "am" : "pm"); printf("%02d:%02d:%02d %s\n", h, m, s, suf.c_str()); } int main() { int T = 0; cin >> T; while (T--) { int n = 0; cin >> n; vector<int> a(n + 1, 0); vector<int> b(n + 1, 0); vector<int> dp(n + 1, 0); for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 2; i <= n; i++) cin >> b[i]; dp[0] = 0; dp[1] = a[1]; for (int i = 2; i <= n; i++) { dp[i] = min(dp[i - 1] + a[i], dp[i - 2] + b[i]); } formatTime(dp[n]); } }

相关推荐

03-19 10:07
已编辑
广东药科大学 golang
Yki_:你倒是进一个面啊
点赞 评论 收藏
分享
牛客网
牛客企业服务