这年头,还在写水题的代码我有点不好意思了。。。不过先补一下基础,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?' ':' '); delete [] sum; delete [] r; } return 0; }