2019杭电多校第七场
咕咕了好久
这场真实自闭
1001. A + B = C
solve at 03:40(+12)
给你A, B, C你要找到一种方案,在A, B, C后各自添加([0, 1e6])个零,使得(A+B=C)
高精度问题
首先在(C)后面添加足够多的零使得(C)的位数最多
然后假设(A)是(AB)中较大的,那么显然(A)的位数要么和(C)一样,要么少一位,对这两种情况分别做一次差,看差值是不是能够通过(B)后面加上若干个零来得到
如果没找到,再假设(B)是较大的
最多做4次就能找到答案,复杂度(O(length))
注意一定不能用高精度乘法,要善于使用字符串结束符号来实现添加若干个0的效果,否则肯定超时
我也不知道为什么错了那么多发,最后也不知道改了啥就过了。。。
1006. Final Exam
upsolved
.自闭源泉
题意是明天有一场考试有(n)道题目共(m)分,如果一道题目有(i)分那么你今天至少花(i+1)的时间取复习明天才能做对
你不知道这些题目的分数分布,你的目标是无论如何至少做出(m)道题,求最短复习时间
首先考虑最坏情况,那就是你复习时间最少的(n-k+1)道题,每道题的分值都恰好等于你的复习时间,并且你复习时间最多的(k-1)道题分值全部为(0)
那么答案显而易见,就是(m + 1 + (k - 1) * (1 + m / (n - k + 1))),
(m+1)的意思是你复习时间最少的(n-k+1)道题的总复习时间,这样至少做对一道题,后面的意思是复习时间最多的(k-1)道题的复习时间均为(ceil((m + 1) / (n - k + 1)))(这样才能保证它们是复习时间较多的(k-1)个
1010. Just Repeat
solved at 04:12(+1)
队友做的,说是排序贪心就完事了,不是很懂
1011. Kejin Player
solved at 02:57(+3)
同一个队友做的,说是忘了清零调了半天,不是很懂