POJ 2291 Rotten Ropes【贪心】
题意: 给你 n 个绳子,从里面选出任意根绳子,求最大承受力,
当承受力大的和小的放在一起时,每个绳子的承受力和小的一样,
分析: 先对绳子排序,然后求出以每个绳子为最小承受力的绳子的最大值。
View Code
#include<stdio.h> #include<stdlib.h> int cmp(const void*p1,const void*p2) { return *(int*)p1-*(int*)p2; } int a[10005]; int main() { int t,n,i; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); qsort(a,n,sizeof(a[0]),cmp); for(i=0;i<n;i++) a[i]=a[i]*(n-i); qsort(a,n,sizeof(a[0]),cmp); printf("%d\n",a[n-1]); } return 0; }