杭电 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;
}


计算最大公约数的两种算法

欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 其算法用C++语言描述为: int gc...

中国剩余定理(韩信点兵)

三数为a b c余数分别为 m1 m2 m3,%为求余计算,&&意为“且”   1、分别找出能被两个数整除,而满足被第三个整除余一的最小的数。   k1%b==k1%c==0 && k1%...
  • Myacing
  • Myacing
  • 2012年07月11日 12:30
  • 1528

HDU1031结构体排序

Design T-Shirt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...

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

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

BToj 1031问题 B: KACA的数字排序 【大数比较--结构体sort && java大数比较】

传送门: 问题 B: KACA的数字排序 时间限制: 1 Sec  内存限制: 128 MB 提交: 9  解决: 3 题目描述 PIPA想让KACA给一串数进行排序。 KACA...

HPUoj1031: 排序 [水题](结构体)

1031: 排序 [水题] 时间限制: 1 Sec  内存限制: 128 MB 提交: 7  解决: 3 [提交][状态][讨论版] 题目描述 有若干个同学的成绩单,形式如下: 姓...

杭电-1862 EXCEL排序(sort+结构体)

EXCEL排序 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T...
  • lu_1110
  • lu_1110
  • 2016年07月19日 19:42
  • 125

【杭电oj】1872 - 稳定排序(结构体排序)

稳定排序 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • wyg1997
  • wyg1997
  • 2016年04月16日 16:41
  • 305

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

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

【杭电-oj】-1862-EXCEL排序(结构体)

EXCEL排序 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:杭电 1031 结构体排序
举报原因:
原因补充:

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