0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
业余选手キライ!:以及需要内推的朋友可以私聊我,我会给个内推码。不过推了三十多个人还没有过的orz

0 点赞 评论 收藏
分享
蓬松的头发:第二题,原因找到了,double。

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
努力找工作的菜鸡丁:楼主牛批,第二题看了你的发现可以直接一维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]);
}
}

0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
Heltion:2我用的也是并查集,但是只要预处理两种旋转变换就行了,相当于只要720个点和1440条边.

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: