加强赛(二)B - Rotten Ropes POJ - 2291

感谢我的学长们对我的带领;

本题思想来源于我的学长:WArobot;

现有长短相等粗细不等(即最大承受中重量不等)的若干根绳子;

本题有三种承受能力分别为:1,10,15的绳子;

首先输入N,N为N组测试数据;

n为n个绳子,接下来是n个数据,代表每个绳子的最大承受的重量;

几个承受能力不同的绳子一起的承受能力取决于承受能力最小的,

例如:一个承受能力为3的和一个承受能力为1的放在一起举起重量为2的重物,根据物理知识:重力会平均分配给每一个绳子;

输出这些绳子所能承受的最大重量;

所以n跟绳子能承受的重量为:承受能力最小的绳子的承受极限乘以n,

然后假设最短的断掉,剩下的如上方法计算承受能力,用一个计数器变量记录每次能承受的重量,并且以最大的为标准不断更新计数器变量;

最后输出计数器变量;

代码如下:

#include "iostream"
#include "algorithm"
using namespace std;
int main(){
int N,n,Max;
int max[1005];
cin>>N;
while(N--){
cin>>n;
Max=0;
for(int i=0;i<n;i++) cin>>max[i];
sort(max,max+n);
for(int i=0;i<n;i++){
if(Max<(max[i]*(n-i)))
Max=max[i]*(n-i);
}
cout<<Max<<endl;
}
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值