7-1 抢红包(PTA - 数据结构)

news2024/9/27 17:27:23

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。

输入格式:

输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:

KN1​P1​⋯NK​PK​

其中K(0≤K≤20)是发出去的红包个数,Ni​是抢到红包的人的编号,Pi​(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。

输出格式:

按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。

输入样例:

10
3 2 22 10 58 8 125
5 1 345 3 211 5 233 7 13 8 101
1 7 8800
2 1 1000 2 1000
2 4 250 10 320
6 5 11 9 22 8 33 7 44 10 55 4 2
1 3 8800
2 1 23 2 123
1 8 250
4 2 121 4 516 7 112 9 10

输出样例:

1 11.63
2 3.63
8 3.63
3 2.11
7 1.69
6 -1.67
9 -2.18
10 -3.26
5 -3.26
4 -12.32

代码长度限制           16 KB

时间限制                600 ms

内存限制                  64 MB


提交结果: 


思路分析: 

        一道普普通通的排序题,抢完红包结算完,然后直接排序输出即可,看到这个时间限制,果断最简单的冒泡排序安排上。这里的id不是数组下标,而是结构体另外定义了一个变量。

        注意的是最后一个检查点,需要将MAX整大一点才能过,要不会报段错误,注意是10的四次方!!!


代码:

#include <stdio.h>
#define MAX 10249

typedef struct{
    double Get;
    double Out;
    int RedNum;
    int id;
}HappyPerson;

int main() {
    int N;          //人数编号是1到N+1
    scanf("%d",&N);
    HappyPerson man[MAX] = {0};
    for (int i = 1; i < N+1; ++i) {
        man[i].id = i;
    }

    for (int i = 1; i < N+1; ++i) {
        int k;
        scanf("%d",&k);
        for(int j = 0;j<k;j++){
            int id;
            double get;
            scanf("%d %lf",&id,&get);
            man[i].Out += get;
            man[id].Get += get;
            man[id].RedNum++;
        }
    }
    
    for (int i = 1; i < N+1; i++) {            //冒泡
        for (int j = 1; j < N-i+1; j++) {
            if ((man[j].Get-man[j].Out)/100 < (man[j+1].Get-man[j+1].Out)/100) {
                HappyPerson hp = man[j+1];    //交换
                man[j+1]= man[j];
                man[j] = hp;
            }
            if(((man[j].Get-man[j].Out)/100 == (man[j+1].Get-man[j+1].Out)/100)&&(man[j+1].RedNum >man[j].RedNum)){
                HappyPerson hp = man[j+1];
                man[j+1]= man[j];
                man[j] = hp;
            }
        }
    }
    for (int i = 1; i < N+1; ++i) {
        printf("%d %.2lf\n",man[i].id,(man[i].Get-man[i].Out)/100);
    }
}

return 0;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1323761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[每周一更]-(第31期):Mysql安装汇总

写自&#xff1a;20230204 23:25 一. mysql rpm二进制包 rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm yum install mysql-community-server service mysqld start set password password(“123456”)二. mysql yum安装 1、安装查看有没有安装…

Dbvis 链接Oracle数据库

安装 Dbvisualizer 后 1&#xff0c;打开Dbvisualizer&#xff0c;单机左键 图片标注处。 2&#xff0c;点击右键&#xff0c;显示。 3&#xff0c;点击Creat Datebase Connection 4,点击 use wizard &#xff0c;填写 地址&#xff0c;下一步 5&#xff0c;选择 Orcal Thin …

华为atlas300安装教程

1、安装包位置&#xff1a; /data/ai_install_packages 2、添加HwHiAiUser用户&#xff1a; groupadd -g 1000 HwHiAiUser useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash 3、安装驱动&#xff1a; ./Ascend-hdk-310p-npu-driver_6.0.0_l…

【小技巧】得力多功能计算器,小数变成10的负幂,应该怎么设置正常显示小数

1.本人计算器如图 2.点击MODE&#xff0c;再次点击可以翻页&#xff0c;找到NORM&#xff0c;如图是3 3.1次方&#xff0c;2是小数点。再摁一下2即可

速通Python基础语法--变量篇

Python设计哲学 解决一个问题&#xff0c;只提供一种方案&#xff1a;变量类型 写法灵活,一行代码表达更多意思,提高语言表达能力:动态类型(两面性) 颜色标识&#xff1a; 紫色&#xff1a;Python与C语言的区别 一、常量与表达式 二、变量 1、认识变量&#xff08;存数据&am…

读书笔记产品经理学习笔记1-忘掉技术,先看客户需求

技术到产品思维的转换 以前做技术的时候&#xff0c;扮演的角色是怎样多快好省的完成开发。现在做产品了&#xff0c;你得自己定产品方案&#xff0c;让别人来开发。最重要的是先弄清楚客户的需求是什么&#xff0c;要解决什么问题&#xff0c;再看产品怎么设计&#xff0c;然…

中国风春节倒计时【实时倒计时】

<head><meta charset="UTF-8"><meta name="apple-mobile-web-app-title

Elasticsearch——索引数据

索引可以说是Elasticsearch中非常重要的模块&#xff0c;一个索引可以视作关系数据库中的一张表&#xff0c;本帖将详细介绍与Elasticsearch索引相关的各种功能等。主要内容如下&#xff1a; 索引映射(mapping)结构的定义方法&#xff0c;常用的各种字段类型和动态映射的使用。…

pytorch实现DCP暗通道先验去雾算法及其onnx导出

pytorch实现DCP暗通道先验去雾算法及其onnx导出 简介实现ONNX导出导出测试 简介 最近在做图像去雾&#xff0c;于是在Pytorch上复现了一下dcp算法。暗通道先验去雾算法是大神何恺明2009年发表在CVPR上的一篇论文&#xff0c;还获得了当年的CVPR最佳论文。 实现 具体原理就不…

微课录课软件盘点,让教学变得更轻松!

“有人知道怎么录制课程吗&#xff1f;上网课的时候&#xff0c;老师讲课的速度很快&#xff0c;有些知识点还没理解&#xff0c;就已经跳过了&#xff0c;这时我就想把网课录下来&#xff0c;课后再进行复习&#xff0c;大家有什么录课的软件推荐吗&#xff1f;” 随着信息技…

微信小程序动态导航栏(uniapp + vant)

本文使用到vant的van-tabbar组件来实现 一、uniapp整合vant ui vant小程序版本:https://vant-contrib.gitee.io/vant-weapp/#/home 注:vant并没有uniapp的版本,所以此处是引入小程序版本的ui 1. 下载vant编译后代码 https://github.com/youzan/vant-weapp/tree/dev/dist 2…

SpringBoot框架介绍数据库操作Mybatis注入JDBC注入

目录 0x00 前言 0x01 SpringBoot框架介绍 1、SpringBoot实现简单的 GET、POST 请求 2、SpringBoot 实现数据库操作 0x02 JDBC&Mybatis注入 0、环境及靶场介绍 - Hello-Java-Sec 1、JDBC 注入 2、Mybatis 注入 3、代码审计案例 - inxedu 后台 MyBatis 注入 0x00 前…

神经网络Python实现(9行代码)

1. 神经网络简介 神经网络由输入层、输出层和之间若干层&#xff08;一层或多层&#xff09;隐含层构成&#xff0c;每一层可以有若干个节点。层与层之间节点的连接状态通过权重来体现。 下面介绍一下单个神经元&#xff1a; 输入节点&#xff1a;x1,x2 权重&#xff1a;w1,w…

27.BGP边界网关路由协议

BGP边界网关路由协议 外部网关路由协议 ospf能承载的路由条目有限 用在运营商与运营商之间&#xff0c;国与国之间 BGP运行在IGP之上&#xff08;内部网关路由&#xff09; IGP都是在物理链路上直连的基础之上才能建立邻居关系&#xff0c;BGP可以跨路由器建立邻居关系&…

Postman进行参数化的2种方式

前言 Postman作为一款接口测试工具&#xff0c;受到了非常多的开发工程师的拥护。 那么做为测试&#xff0c;了解Postman这款工具就成了必要的了。 这篇文章就是为了解决Postman怎么进行参数化的。 同时&#xff0c;我也为大家准备了一份软件测试视频教程&#xff08;含面试、…

为“EYE”加码,蔡司光学公益助童活动走进湖南省宁乡市

为不断强化品牌的责任担当&#xff0c;用公益传递社会正能量。2023年11月28日&#xff0c;国内眼视光领域领导品牌蔡司光学携手海南精功眼镜走进湖南省宁乡市青少桥初级中学开展蔡司公益助童行动&#xff0c;全校共504名学生参与其中。 因爱而生&#xff0c;接续传递“EYE”的美…

arcmap + oracle11g 迁移数据 报错 copyFeatures失败

原因排查&#xff1a; 1.通过这个界面&#xff0c;我们无法查到真正的原因&#xff0c; 2.将数据拷贝到我们自己的arcmap服务器中&#xff0c;采用 单个要素 导入&#xff0c;从result面板中查找原因&#xff1b; 从上面这个图中&#xff0c;看到关键信息 DBMS error ORA-016…

Opencv入门五 (显示图片灰度值)

源码如下&#xff1a; #include <opencv2/opencv.hpp> int main(int argc, char** argv) { cv::Mat img_rgb, img_gry, img_cny; cv::namedWindow("Example Gray",cv::WINDOW_AUTOSIZE); cv::namedWindow("Example Canny", cv::WINDOW_…

数据隐私治理所面临的四大挑战

PrimiHub一款由密码学专家团队打造的开源隐私计算平台&#xff0c;专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 近年来&#xff0c;隐私功能越来越受到重视&#xff0c;在重大立法改革和加强监管审查的支持下&#xff0c;各组织通过部署和扩展…

07.stack 容器

7、stack 容器 概念&#xff1a; stack 是一种先进后出&#xff08;First In Last Out&#xff0c;FILO&#xff09;的数据结构&#xff0c;它只有一个出口 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据…