#1868. 珅泽教育CSP-J第一轮模拟考第十套 第 37 题
珅泽教育CSP-J第一轮模拟考第十套 第 37 题
三、完善程序(单选题,每小题3分,共计30分)
第1题
给定 根火柴的长度 ,请用这些火柴围成一个面积最大的三角形。注意所有的火柴都必须用上,不得丢弃。输出最大三角形的面积。假设最大面积为 ,则输出 。,数据保证至少有一种方案可以围成三角形。
#include<iostream>
using i64 = long long;
int n;
int a[40];
bool mem[40][40*40][40*40];
i64 value[40][40*40][40*40];
i64 solve(int i, int x, int y, int z)
{
if (i < n)
{
if (mem ____(1)____ > 0)
return value ____(2)____;
i64 s1 = solve(i+1, x + a[i], y, z);
i64 s2 = solve(i+1, x, y + a[i], z);
i64 s3 = solve(i+1, x, y, z + a[i]);
mem[i][x][y] = true;
return value[i][x][y] = ____(3)____;
}
else
{
if ( ____(4)____ ) return 0;
i64 p = ____(5)____ ;
return ____(6)____ ;
}
}
int solve()
{
std::cin >> n;
for (int i = 0; i < n; ++i)
{
std::cin >> a[i];
}
std::cout << solve(0, 0, 0, 0);
}
(3) 处应填( )。
{{ select(1) }}
s1 + s2 + s3*std::max_element({s1, s2, s3}.begin(), {s1, s2, s3}.end())std::max(std::max(s1, s2), std::max(s3, z))std::max(std::max(s1, s2), s3)