题目很好理解,将列求和,取前k大的

我的代码思路:对列求和,后取出前k大的id加入结果数组,对比后面和第k大相同的评分id也加入到结果数组,最后对结果数组排序

代码:

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int Max = ;
struct Node{
double score;
int id;
bool operator < (const Node o) const{
return score>o.score;
}
}node[Max];
int ans[Max];
int main()
{
int n,m,k;
while(~scanf("%d%d%d",&n,&m,&k))
{
double tm;
for(int i = ; i < m; i++){
node[i].id = i;
node[i].score = ;
}
for(int i = ; i < n; i++){
for(int j = ; j < m; j++){
scanf("%lf",&tm);
node[j].score+=tm;
}
}
sort(node,node+m);
int cnt = ;
for(int i = ; i < k; i++){
ans[cnt++] = node[i].id+;
}
int top = k;
while(node[top].score==node[top-].score){
ans[cnt++] = node[top].id;
top++;
}
sort(ans,ans+cnt);
for(int i = k-; i > ; i--){
printf("%d ",ans[i]);
}
printf("%d\n",ans[]);
}
return ;
}

(有一种wa的痛叫忘记数组初始化)

下面是看了大神的代码,原来自己想复杂了,直接对结构体进行两次排序即可

get一种新方法,记录代码如下:

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int Max = ;
struct Node{
double score;
int id;
}node[Max];
bool cmpByScore(Node a, Node b){
return a.score>b.score;
}
bool cmpById(Node a, Node b){
return a.id>b.id;
}
int main()
{
int n,m,k;
while(~scanf("%d%d%d",&n,&m,&k))
{
double tm;
for(int i = ; i < m; i++){
node[i].id = i+;
node[i].score = ;
}
for(int i = ; i < n; i++){
for(int j = ; j < m; j++){
scanf("%lf",&tm);
node[j].score+=tm;
}
}
sort(node,node+m,cmpByScore);
sort(node,node+k,cmpById);
for(int i = ; i < k-; i++){
printf("%d ",node[i].id);
}
printf("%d\n",node[k-].id);
}
return ;
}

hdu_1031_结构体排序的更多相关文章

  1. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...

  3. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  4. 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏

    主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...

  5. hdu1263 水果(结构体排序)

    Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样J ...

  6. <algorithm>里的sort函数对结构体排序

    题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...

  7. JustOj 2039: 成绩排名 (结构体排序)

    题目描述 每次期末考试成绩出来之前的一段时间大豪哥心里都是痛苦的,总感觉自己会在班上排名特别差.所以当成绩出来以后大豪哥想快点知道班上的总排名,以便知道自己的排名.(PS:大豪哥班上有个学霸名叫日天, ...

  8. (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)

    /* * POJ_2092.cpp * * Created on: 2013年11月1日 * Author: Administrator */ #include <iostream> #i ...

  9. HDU 1263 水果 结构体排序

    解题报告:一个结构体排序的题,用了一个运算符重载,要注意的是不同的地方可能会产相同的水果,一开始没注意. #include<cstdio> #include<cstring> ...

随机推荐

  1. Swift基础学习

    Swift基础学习  http://c.biancheng.net/cpp/html/2242.html 这个网站最近看了一下,对于基本语法解释概括的相对全面,如同重新练习一遍OC似的,挺全面的,谢谢 ...

  2. golang 如何验证struct字段的数据格式

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/125 假设我们有如下结构体: type User struct ...

  3. AntData.ORM框架 之 DotnetCore

    开源地址:https://github.com/yuzd/AntData.ORM   CodeGen使用请参考http://www.cnblogs.com/yudongdong/p/6421312.h ...

  4. 模板引擎(smarty)知识点总结五

    ---------重点知识:循环------------ /*   smarty 循环之for循环 */ /*    基本的语法         {for $i=$start to $end step ...

  5. Oracle 启动参数

    查看数据库的SID DB_NAME SERVICE_NAME

  6. MyBatis map foreach

    以下资料来源于网络,仅供参考学习.   mybatis 遍历map实例 map 数据如下 Map<String,List<Long>>.   测试代码如下: public vo ...

  7. 【bird-java】bird-java概述

    bird-java是以dubbo为基础的分布式服务框架,专注于业务开发,提炼后台应用中的经典业务场景,大幅减少开发编码量. 技术选型 基础框架:spring 服务调度:dubbo web层:sprin ...

  8. WINDOWS下运行ORACLE SQLPLUS时报错的一次记录

    环境变量配置无误后,在sys用户 在pl/sql上登录时候报以下错误 ORA-01034: ORACLE not available进程 ID: 0会话 ID: 0 序列号: 0 然后运行控制台,有以 ...

  9. thinkinginjava学习笔记01_导论

    初学java,希望旅途愉快  :) 类型决定对象的接口,(有人认为类是类型的特定实现),接口确定对象所能发出的请求(消息),满足请求的代码和隐藏的数据一起构成实现: 对象设计时,应该很好地完成一项任务 ...

  10. 01-Java基础及面向对象

    JAVA基础知识 Java 是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门面向 Internet 的高级编程语言. Java 虚拟机(JVM ...