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

这篇具有很好参考价值的文章主要介绍了7-1 抢红包(PTA - 数据结构)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

没有人没抢过红包吧…… 这里给出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


提交结果: 

数据结构抢红包问题c语言,PTA,数据结构,数据结构,算法


思路分析: 

        一道普普通通的排序题,抢完红包结算完,然后直接排序输出即可,看到这个时间限制,果断最简单的冒泡排序安排上。这里的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;文章来源地址https://www.toymoban.com/news/detail-816742.html

到了这里,关于7-1 抢红包(PTA - 数据结构)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。

    最短路径的算法有两个, Dijkstra算法 和 Floyd算法 。 Dijkstra算法 解决的是 单源 最短路径问题 。 Floyd算法解决的是 多源 最短路径问题,并且可以处理负权图 。 今天要讲的就是Dijkstra算法。 加: feng--Insist (大写的i),进java交流群讨论互联网+技术。可索要PPT等资料。 其他资料

    2024年02月11日
    浏览(33)
  • 数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)

    目录 问题描述  解题思路 伪代码  总体算法 DFS算法 伪代码解读 总体算法 DFS算法 具体实现(C语言) 在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑

    2024年02月05日
    浏览(54)
  • 2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)

    以下的专业相关基础问题,是在2022年暑期准备面试过程中,断断续续准备的,最终上岸厦大啦,也希望这些内容对后面准备保研的学弟学妹们有帮助。少即是多、快即是慢,希望大家也不必太焦虑,慢慢来比较快! 堆、栈、队列、链表等数据结构 树:红黑树、二叉树的各类

    2024年02月15日
    浏览(38)
  • 《数据结构》_PTA_数据结构作业6:图

    1-1 无向连通图所有顶点的度之和为偶数。 T 1-2 无向连通图边数一定大于顶点个数减1 F 1-3 无向连通图至少有一个顶点的度为1。 F 1-4 用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. F 1-5 用邻接矩阵法存储图,占用的存储空间数只与图中结点个数

    2024年02月04日
    浏览(45)
  • 7-1 天梯地图 (PTA-数据结构)

    本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。 输入格式: 输入在第一行给出两个正整数 N (2 ≤

    2024年02月02日
    浏览(28)
  • 数据结构Pta训练题-编程2

    感谢你这么帅(漂亮)​还支持我 一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。 输入

    2024年02月16日
    浏览(38)
  • 数据结构——排序算法(C语言)

    本篇将详细讲一下以下排序算法: 直接插入排序 希尔排序 选择排序 快速排序 归并排序 计数排序 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某写的大小,按照递增或递减0排列起来的操作。 稳定性的概念 假定在待排序的记录序列中,存在多个

    2024年02月08日
    浏览(42)
  • C语言数据结构与算法

    冒泡排序 例题 顺序表下的 冒泡排序 注意:冒泡排序 稳定,最多执行n(n-1)/2次 选择排序不稳定,平均比较次数n(n-1)/2 直接插入排序,是在有序基础上,速度最快且稳定的排序方法。 希尔排序是 不稳定的 顺序查找 二分查找(非递归) 二分查找(递归) 数组 链表 查询 快 慢

    2024年02月06日
    浏览(54)
  • 数据结构Pta训练题函数题详解

    感谢你这么帅(漂亮)​还支持我 pta网站:PTA | 程序设计类实验辅助教学平台 (pintia.cn) 文章内容较长,建议搭配目录使用 给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。 函数接

    2024年02月12日
    浏览(35)
  • 数据结构pta训练题-编程题1

    感谢你这么帅(漂亮)​还支持我 训练网站:PTA训练平台 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

    2024年02月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包