杭电OJ-Tickets(dp水题)

xiaoxiao2021-02-28  62

#include<iostream> #include<cstring> #include<algorithm> using namespace std; int one[2111]; int two[2111]; int dp[2111];//dp[i]=min(dp[i-1]+one[i],dp[i-2]+two[i]) void print_time(int n) { int h = n / 3600; int m = (n-3600*h) / 60; int s = n - 3600 * h - 60 * m; h = h + 8; h = h % 24; bool fg = true; if (h >= 12) { h -= 12; if (!h) h = 12; fg = false; } if (fg) printf("d:d:d am\n",h,m,s); else { printf("d:d:d pm\n", h, m, s); } } int main() { int n; cin >> n; while (n--) { memset(dp, 0, sizeof(dp)); memset(one, 0, sizeof(one)); memset(two, 0, sizeof(two)); int k; cin >> k; for (int i = 1; i <= k; i++) { cin >> one[i]; } for (int i = 2; i <= k; i++) { cin >> two[i]; } dp[1] = one[1]; for (int i = 2; i <= k; i++) { dp[i] = min(dp[i - 1] + one[i], dp[i - 2] + two[i]); } print_time(dp[k]); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-2631620.html

最新回复(0)