问题标题: 酷町堂:4838 水桶接水

0
0
已解决
王雨婷
王雨婷
高级守护
高级守护

题目描述 Description

给定n个整数a1,a2,…,an,表示有n个木板,ai表示第i个木板的长度。在坐标内画n条与x轴垂直的线,相邻两条线的距离为1,第i条线的长度为ai。我们需要在这n个木板中,选出其中的两个木板,使得它们与x轴共同构成的一个接水的容器,要知道一个容器能够接多少水,取决于最短的那个木板的长度,这个容器的接水量就是这两个木板中较短的那个木板的长度乘上两个木板之间的距离。我们要找出可以容纳最多的水的容器的容量。

输入描述 Input Description

输入两行
第一行一个整数n,表示n个木板(2<=n<=100)
第二行n个整数,表示n个木板具体的长度

输出描述 Output Description

输出一个数,表示构成容器的最大容量

样例输入 Sample Input

5 4 5 3 6 8

样例输出 Sample Output

16


1
已采纳
吕若朴
吕若朴
中级光能
中级光能

这题简单……

枚举两块木板分别是啥,

第一重循环从1到n,(i)

第二重循环从i+1到n。(j)

然后判断这两块木板的装水量是否大于累计最大装水量。

最后输出累计最大装水量。

装水量计算:abs(i-j)*min(a[i],a[j])

abs绝对值头文件:cmath

吕若朴在2020-05-29 22:43:52追加了内容

循环部分:

for(int i=1;i<=n;i++){
    for(int j=i+1;j<=n;j++){

    }
}

判断部分:

if(该装水量>mx)mx=该装水量

最后输出mx!!

0
沈峻宇
沈峻宇
资深天翼
资深天翼

这道题运用枚举的思路来做,这是提示

肯定有循环,至于是for还是while自己想

首先,要给出n个木板,然后给出每块木板的长度,里面的垂直线在一起容纳得水量就是要输出的东西

望采纳!

0
邵悦媛
邵悦媛
新手光能
新手光能

这题还真不简单,首先需要枚举两块木板分别是什么。

接着打循环,

一重循环1~n,二重循环从i+1~n

使用啥我就不说了……

接着判断两块木板装水量之和是不是当前最大装水量。

最后输出累计最大装水量。

题目就这么解决了。

求采纳。

0
0
0
0
刘英杰
刘英杰
新手天翼
新手天翼

水,全是水,是友军!(doge)

我要回答