hd
Autistic patient866
中南林业科技大学本科计算机专业
展开
-
6、杭电1005(不能简单用递归)
不难发现,f(n)的结果出现了循环。我们要做到的就是找到这个循环的长度,用n模上循环长度,结果的位置就出来了。很自然想到递归,写完注意到n的取值( 1 <= n <= 100,000,000),递归肯定要报内存错了。f(n) 由f(n-1)和f(n-2)与常数AB决定,而f(n)的值一定小于7,只能为0-6这7个值。组合重复,即f(n-1),f(n-2)在之前已经出现过,由它们计算出的f(n)也必然出现过,以此类推。f(n-1)和f(n-2)同样也只能为0-6这七个值,原创 2023-09-24 18:18:39 · 65 阅读 · 1 评论 -
杭电1004(暴力方法)
【代码】杭电1004(暴力方法)原创 2023-09-24 18:16:25 · 64 阅读 · 1 评论 -
大数相加(数值太大而不能用int定义)
【代码】大数相加(数值太大而不能用int定义)原创 2023-09-24 18:15:18 · 69 阅读 · 1 评论 -
最大总和(动态规划)
比如说,1+1+1+1+1=5,那么再加1呢,等于6。可以发现,我们非常快地得出了答案,那是因为我们记住了上一个结果是5,5+1=6。如果我们重新1+1+1+1+1+1=6,那么肯定会慢,而且会造成许多不必要的浪费。比如说:给你一个序列(6,-1,5,4,-7),它的子序列之和中的最大值是6 + (-1) + 5 + 4 = 14。接下来的T行,每一行都首先是一个范围在1到100000的数字N,代表着该测试案例中所包含的测试数据个数。第一行是一个范围在1到20的整数T,代表着接下来输入的测试案例;原创 2023-09-24 18:14:20 · 95 阅读 · 1 评论 -
hd数列求和
假设结果是一个32位的有符号整数,也就是说最大值是有符号整数范围要在-2的31次方到2的31次方-1之间,假设sum为2的31次方,那么根据sum=(n+1)*n/2可以大致得到n的大约取值是2的16次方,意味当n>=2的36次方就会溢出。因此这里出现了乘法溢出的问题,在这里不能直接用等差数列求和公式,因为题中说:You may assume the result will be in the range of 32-bit signed integer.要求是求和之后的结果不能超过32位。原创 2023-09-24 18:13:02 · 30 阅读 · 1 评论