杭电 1031 结构体排序

原创 2012年03月27日 11:05:42

   这道题题意有点晦涩,读了很久才明白。结果提交确实wa,,让我一度怀疑自己理解错题意了,后来又仔细看了看程序,发现了一个bug,改过后就ac了。题意就是求n个数的前k个,但是还有另一个属性序号,序号从小到大排序即可。题目:

Design T-Shirt

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2173    Accepted Submission(s): 1080


Problem Description
Soon after he decided to design a T-shirt for our Algorithm Board on Free-City BBS, XKA found that he was trapped by all kinds of suggestions from everyone on the board. It is indeed a mission-impossible to have everybody perfectly satisfied. So he took a poll to collect people's opinions. Here are what he obtained: N people voted for M design elements (such as the ACM-ICPC logo, big names in computer science, well-known graphs, etc.). Everyone assigned each element a number of satisfaction. However, XKA can only put K (<=M) elements into his design. He needs you to pick for him the K elements such that the total number of satisfaction is maximized.
 

Input
The input consists of multiple test cases. For each case, the first line contains three positive integers N, M and K where N is the number of people, M is the number of design elements, and K is the number of elements XKA will put into his design. Then N lines follow, each contains M numbers. The j-th number in the i-th line represents the i-th person's satisfaction on the j-th element.
 

Output
For each test case, print in one line the indices of the K elements you would suggest XKA to take into consideration so that the total number of satisfaction is maximized. If there are more than one solutions, you must output the one with minimal indices. The indices start from 1 and must be printed in non-increasing order. There must be exactly one space between two adjacent indices, and no extra space at the end of the line.
 

Sample Input
3 6 4 2 2.5 5 1 3 4 5 1 3.5 2 2 2 1 1 1 1 1 10 3 3 2 1 2 3 2 3 1 3 1 2
 

Sample Output
6 5 3 1 2 1
 

ac代码:

#include <iostream>
#include <string.h>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=10005;
#define mmin 1e-10
struct digit{
  double num;
  int xuhao;
}aa[N];
bool cmp1(digit a,digit b){
	if(fabs(a.num-b.num)<0.000001)
		return a.xuhao<b.xuhao;
	return a.num>b.num;
}
bool cmp2(digit a,digit b){
	return a.xuhao>b.xuhao;
}
int main(){
  //freopen("11.txt","r",stdin);
  int n,m,k;
  while(~scanf("%d%d%d",&n,&m,&k)){
	  double x;
	  for(int i=0;i<m;++i){
		  aa[i].num=0.0;
	  }
	  for(int j=0;j<n;++j){
	     for(int i=0;i<m;++i){
	       scanf("%lf",&x);
		   aa[i].num+=x;
	     }
	  }
	 for(int i=0;i<m;++i)
		  aa[i].xuhao=i+1;
	 sort(aa,aa+m,cmp1);
	 sort(aa,aa+k,cmp2);
	 for(int i=0;i<k-1;++i)
		 printf("%d ",aa[i].xuhao);
	 printf("%d",aa[k-1].xuhao);
	 printf("\n");
  }
  return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

Design T-Shirt Problem Description Soon after he decided to design a T-shirt for our Algorit...

杭电OJ(HDOJ)1862题:EXCEL排序(结构体sort)

题意: 测试输入包含若干测试用例。每个测试用例的第1行包含两个整数 N ( 行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,同组测试中没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、...

杭电-1304A Contesting Decision(结构体)

A Contesting Decision Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java...

杭电1434幸福列车(嵌套结构体,优先队列)

幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total ...

杭电ACM1031——Design T-Shirt

题目的意思是:给你N个人的对M个元素的满意度,需要添加K个元素到T-shirt上,使得满意度最大。很水的题目。 我的思路是,将各个元素的满意度加起来,排序,得到前K个满意度最大的。再将元素的编号进行...

杭电1031 Design T-Shirt

Design T-Shirt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...
  • z8110
  • z8110
  • 2015-12-02 12:59
  • 160
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)