本文主要是介绍Codeforces #280 (Div.2 A~E),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
比赛地址
Codeforces Round #280 (Div. 2)
492A. Vanya and Cubes
题意:
Vanya要堆金字塔,第1层要1个方块,第2层要1+2个,第3层要1+2+3个,以此类推。现在Vanya有n个方块,求能堆的金字塔的最大高度。
n < 10 ^ 4。
题解:
设金字塔高度为h,则需要的积木数为\sum_{i = 1} ^ {h} {\sum_{j = 1} ^ {i} {j}} = \sum_{i = 1} ^ h {i * (h + 1 - i)} = (h + 1) * \sum_{i = 1} ^ h {i} - \sum_{i = 1} ^ h {i ^ 2} = h * (h + 1) * (h + 2) / 6,h大约为O(n ^ (1 / 3))级别,直接枚举即可,不写公式也可以。
时间复杂度O(n ^ (1 / 3))。
代码:
#include <cstdio>
int n, a, b, c;
int main()
{scanf("%d", &n);while(c <= n){++a;b += a;c += b;}printf("%d\n", --a);return 0;
}
这篇关于Codeforces #280 (Div.2 A~E)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!