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> ...
随机推荐
- iOS动态性 运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)
借助前辈的力量综合一下资料. OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是 ...
- iOS实现类似QQ的好友列表,自由展开折叠(在原来TableView的基础上添加一个字典,一个Button)
//直接代码 只包含 折叠展开字典的处理搭建#import "CFViewController.h" @interface CFViewController ()<UITab ...
- mysql 证明为什么用limit时,offset很大会影响性能
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/117 首先说明一下MySQL的版本: mysql> sel ...
- 如何在MQ中实现支持任意延迟的消息?
什么是定时消息和延迟消息? 定时消息:Producer 将消息发送到 MQ 服务端,但并不期望这条消息立马投递,而是推迟到在当前时间点之后的某一个时间投递到 Consumer 进行消费,该消息即定时消 ...
- HDU4992 求所有原根
Primitive Roots Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- JS画几何图形之一【直线】
JS画图的想法经过大脑的时候,觉得有点意思,所以就实践了一番.JS画图为系列文章,本是讲点.线和面 先看样例:http://www.zhaojz.com.cn/demo/draw5.html 一.点 ...
- css3 结构性伪类选择器
伪类 选择器 类型 说明 备注 E:first-line 伪元素选择器 选择匹配E元素内的第一行文本 E:first-letter 伪元素选择器 选择匹配E元素内的第一个字符 E:before 伪元素 ...
- Ubuntu16.04 添加 Docker用户组
Ubuntu16.04 添加 Docker用户组 将用户添加到docker用户组就不用每次都 sudo了. ### 首先创建用户组 sudo groupadd docker 将用户加如组 sudo g ...
- java RTTI笔记 之Class学习笔记(摘自java编程思想)
1.java 使用Class对象来执行其RTTI.java 中每个类在编译后都会对应产生一个Class对象(更恰当地说是被保存在一个同名的.class文件中),甚至void和基本类型也都对应一个cla ...
- px-rem自适应转换
当前团队开发过程,存在2种度量单位(px.rem)各有说辞px:各个终端统一大小,简单明了,未尝不可!rem:大屏幕显示大字体,小屏幕显示小字体,渐进增强视觉感.业界各种写法都有,不逐一讨论.团队呼声 ...