hdu_1031_结构体排序
题目很好理解,将列求和,取前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_结构体排序的更多相关文章
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...
- 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏
主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...
- hdu1263 水果(结构体排序)
Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样J ...
- <algorithm>里的sort函数对结构体排序
题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...
- JustOj 2039: 成绩排名 (结构体排序)
题目描述 每次期末考试成绩出来之前的一段时间大豪哥心里都是痛苦的,总感觉自己会在班上排名特别差.所以当成绩出来以后大豪哥想快点知道班上的总排名,以便知道自己的排名.(PS:大豪哥班上有个学霸名叫日天, ...
- (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)
/* * POJ_2092.cpp * * Created on: 2013年11月1日 * Author: Administrator */ #include <iostream> #i ...
- HDU 1263 水果 结构体排序
解题报告:一个结构体排序的题,用了一个运算符重载,要注意的是不同的地方可能会产相同的水果,一开始没注意. #include<cstdio> #include<cstring> ...
随机推荐
- Hybris 项目工程配置
1.控制台页面进入platform目录 cd F:\hybris640\hybris\bin\platform 并运行 setantenv.bat 生成对应的ant. 2.运行 ant moduleg ...
- 程序员的自我救赎---11.1:RPC接口使用规范
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- Eclipse Pydev添加MySQLdb模块,Windows下安装MySQL-python
1.首先确保Windows下已经安装Python.Eclipse并且Eclipse已经集成Pydev能成功运行Python 2.下载MySQL-python 地址:http://www.codegoo ...
- JMeter测试HTTPS
HTTP和HTTPS测试时稍有不同,HTTPS需要加载证书,端口也不一样,操作如下: 1)下载被测网站证书导入 见图为流程: 2)使用JMeter自带的证书 ApacheJMeterTemporar ...
- 麻瓜之我要学sql,啦啦啦啦
四张表 学生表:编号,姓名,性别,班级,生日 CREATE TABLE IF NOT EXISTS student( sno TINYINT UNSIGNED NOT NULL, sname ) NO ...
- git 的回退
今天下午写了一下午的代码给合并没了 然后晚上觉得还是要好好学习一下git的使用 推荐几个git的教程 https://www.liaoxuefeng.com/wiki/0013739516305929 ...
- Python 学习教程汇总
Python快速教程http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html简明Python教程https://bop.molun.ne ...
- Xposed 学习笔记
Xposed框架用法 1.配置AndroidManifest.xml <meta-data android:name="xposedmodule" android:value ...
- 三栏布局之 css3 calc和 flex
圣杯布局的实现,有很多种. 大致都是借助 padding, margin, float之类的,当然这是传统的实现方式.更多的参考方式圣杯布局小结. 这里说的是用css3 cal 和flex来实现,因为 ...
- Java多线程窥探
1.程序,进程,线程 标准定义: