HDU 1031 Design T-Shirt

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于HDU 1031 Design T-Shirt的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1031.Design T-Shirt结构体二次排序8月21

hdoj-1031-Design T-Shirt

vjudge B - Design T-Shirt

HDU 1007 Quoit Design

HDU1007Quoit Design(分治)

HDU 1007 Quoit Design(分治)