HDU 1031 Design T-Shirt

这年头,还在写水题的代码我有点不好意思了。。。不过先补一下基础,1Y对自己很重要。

贪心算法

#include <stdio.h>
#include <algorithm>
using namespace std;

double x,*sum;
int *r,*vis;

bool cmp(int x,int y){
    return sum[x] > sum[y];
}

int main(){
    int n,m,k;
    while(scanf("%d %d %d",&n,&m,&k) != EOF){
        sum = new double[m + 10];
        vis = new int [m + 10];
        r = new int[m + 10];
        for(int i=1;i<=m;i++) 
            sum[i] = 0.0,r[i]=i,vis[i]=0;
        for(int i=0;i<n;i++)
            for(int j=1;j<=m;j++)
                scanf("%lf",&x),sum[j] += x;
        sort(r+1,r+m+1,cmp);
        sort(r+1,r+k+1);
        for(int i=k;i>=1;i--) printf("%d%c",r[i],i==1?'\n':' ');
        delete [] sum;
        delete [] r;
    }
    return 0;
}
View Code

 

posted on 2013-12-05 23:32  从此以后  阅读(184)  评论(0)    收藏  举报