HDU 1031 Design T-Shirt
题意:讲的是XKA要设计T-Shirt,征集大众对各元素的满意度。分别输入3个整数,分别给N、M、K,其中N代表参与打分的人数,M代表元素总数量,K代表XKA所要选用的元素数量。XKA将选用分值较高的前K个元素,若分值相同则选择索引小的的元素。
思路:记录每个M的总分数和索引,用结构体存起来,两次排序就够了
另外要注意的输出格式,不能有多余的空格。
1 #include<iostream> 2 #include<algorithm> 3 #include<cmath> 4 using namespace std; 5 double num[1005][1005]; 6 struct point{ 7 double tot; 8 int index; 9 }p[1005]; 10 int x[1050]; 11 int cmp(point x,point y) 12 { 13 return x.tot>y.tot; 14 } 15 int cop(point a,point b) 16 { 17 return a.index>b.index; 18 } 19 int main() 20 { 21 int n,m,k; 22 while(scanf("%d %d %d",&n,&m,&k)!=EOF){ 23 for(int j,i=1;i<=n;++i) 24 for(j=1;j<=m;++j) 25 scanf("%lf",&num[i][j]); 26 int t=0; 27 for(int i,j=1;j<=m;++j){ 28 double sum=0; 29 for(i=1;i<=n;++i) 30 sum+=num[i][j]; 31 p[t].tot=sum; 32 p[t].index=j; 33 ++t; 34 } 35 sort(p,p+t,cmp); 36 sort(p,p+k,cop); 37 printf("%d",p[0].index); 38 for(int i=1;i<k;++i) 39 printf(" %d",p[i].index); 40 printf("\n"); 41 } 42 }