题目很好理解,将列求和,取前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. Java 管程解决生产者消费者问题

    同样是实验存档.//.. 依然以生产者消费者问题作为背景. 管程(=“资源管理程序”)将资源和对资源的操作封装起来,资源使用者通过接口操作资源就 ok,不用去考虑进程同步的问题. 管程: packag ...

  2. Docker了解

    Docker了解1.Docker能做什么:Docker能够解决虚拟机能够解决的问题,同时也能够解决虚拟机由于请求资源过高无法解决的问题. *隔离应用依赖 *创建应用镜像并进行复制 *创建容易分发的即启 ...

  3. 超级基础的python文件读取

    读取文件的两种方式: 1.使用os的open函数: import sys,os r=open("data1.txt","r+") fr=r.readlines( ...

  4. java操作时间,将当前时间减一年,减一天,减一个月

    在Java中操作时间的时候,常常遇到求一段时间内的某些值,或者计算一段时间之间的天数 Date date = new Date();//获取当前时间 Calendar calendar = Calen ...

  5. shell 踩坑记

    变量赋值时,等号两边不能有空格: 在判断表达式中,不论是 [ -n "$1" ] 还是 [ -f  "$1" ] 都要在变量两侧加上双引号: 在使用与或非判断式 ...

  6. centos7 卸载home 扩大root空间

    =============================================== 2017/11/1_第1次修改                       ccb_warlock == ...

  7. vivado hls(1)

    笔记 1.vivado  hls是fpga高级综合工具,可以将C语言转换成verilog代码,适合编写算法,但是要有硬件思想. 2.软核就是只要资源足够,就可以用逻辑打一个CPU出来,与硬核不一样,硬 ...

  8. 1.php开发环境安装

    1.安装环境 在链接https://sourceforge.net/projects/xampp/files/下载集成开发环境,此集成了web服务器.php开发.mysql数据库.傻瓜式安装step ...

  9. .bashrc:16: command not found: shopt配置环境变量时出错

    source .bashrc ------------------------------------------------------- .bashrc:: command not found: ...

  10. VS2017 调试不能命中断点问题

    去掉勾