poj2291

来源:互联网 发布:淘宝网百丽女鞋 编辑:程序博客网 时间:2024/06/05 08:16

题目大意:

给一组绳子,以及每根绳子可以承载的重量。问怎么选出几根绳子,系在一起,可以得到最大的重量

解题思路:

先排序,然后遍历取最优即可

代码如下:

#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;}
0 0