题目大意:
给一组绳子,以及每根绳子可以承载的重量。问怎么选出几根绳子,系在一起,可以得到最大的重量
解题思路:
先排序,然后遍历取最优即可
代码如下:
#include<iostream>
#include<cmath>
#include<algorithm>
int cmp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,rope[1002],max=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&rope[i]);
}
qsort(rope+1,n,sizeof(rope[1]),cmp);
for(int i=1;i<=n;i++)
{
if(rope[i]*(n-i+1)>max)
{
max=rope[i]*(n-i+1);
}
}
printf("%d\n",max);
}
return 0;
}