L2-009. 抢红包

时间限制
300 ms

内存限制
65536 kB

代码长度限制
8000 B

判题程序
Standard

作者
陈越

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

输入格式:

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

K N1 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

直接用一个结构体数组存取信息就行了,但是有几个问题:

1.double不能作比较,在写cmp函数的时候还是要比较total,所以先把total定义int型,最后强转。

2.这里出现了玄学的问题,结构体数组定义在main的时候,如果不用memset初始化,数组开到10000,最后一个测试点过不了,如果把数组开到100000,就全A了,或者把结构体数组定义在全局main方法之外,也可全A,或者定义在main之内,用memset初始化,也可A。关键就是在没有初始化,结构体里面值是随机的也可以理解,但在数组多开一个0为什么也能A的情况就不懂了?

#include <bits/stdc++.h>using namespace std;
const int maxn = 10000 + 5;
struct Member {int shou;int fa;int total;int num;int id;};//double ans[maxn];bool cmp(Member m1,Member m2) {if(m1.total != m2.total) {return m1.total > m2.total;}else if(m1.num != m2.num) {return m1.num > m2.num;}else {return m1.id < m2.id;}
}
int main()
{//freopen("in.txt","r",stdin);Member m[maxn];int n;memset(m,0,sizeof(m));cin>>n;for(int i = 0; i < n; i++) {m[i].id = i;}int k,d,mon;for(int i = 0; i < n; i++) {cin>>k;int sum = 0;while(k--) {cin>>d>>mon;m[d-1].shou += mon;sum += mon;m[d-1].num++;}m[i].fa += sum;}for(int i = 0; i < n; i++) {m[i].total = m[i].shou - m[i].fa;}sort(m,m+n,cmp);for(int i = 0; i < n; i++) {
//            ans[i] = (double)m[i].total/100.0;printf("%d %.2lf\n",m[i].id+1,(double)m[i].total/100);}return 0;
}

转载于:https://www.cnblogs.com/zhangmingzhao/p/7256655.html

L2-009. 抢红包 结构体排序相关推荐

  1. qvector 结构体排序_C++结构体的应用_YCOJ

    结构体是一种自定义的东西,用struct来定义.在他里面, 可以装许多东西,比如int,string,char,bool等等等等. 如: struct a{ string name; int a; i ...

  2. 还是贪心(结构体排序)

    2128: 盾神与积木游戏 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 127 Solved: 39 [Submit][Status][Web Boa ...

  3. sort对结构体排序

    1.排序方法: sort(数组起始指针,数组尾指针,排序规则); 数组起始指针,数组尾指针是左闭右开 排序规则可以省略,也可以用系统的,也可以自己写 2.例子: int a[]={9,2,4,5,10 ...

  4. P1068 分数线划定 洛谷 (C++)(结构体排序)

    简单的结构体排序,代码如下 #include <iostream> #include <cstdio> #include <algorithm> #include ...

  5. C#中结构体排序方法(Array.sort() + ICompare)

    感觉C#比C++麻烦许多,资料也少,找了半天竟然没有找到一个能用的结构体排序. 这是待排序的结构体: public struct la{public int id;public int sb;}; 首 ...

  6. 【HDU】1862 EXCEL排序(结构体排序)

    Problem Description Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<= ...

  7. -nan(ind) 重载运算符以及结构体排序

    一. -nan(ind): nan:not a number:无法得到一个数字 ind:indeterminate: 不确定的 可能情况: 1. 分母为零 2. 对负数开平方 3. 有些编译器在对无穷 ...

  8. C语言中对结构体排序

    在C语言中对结构体排序 用qsort()函数进行排序, qsort()里面要传入4个参数–qsort(数组名,数组长度,sizeof(),排序方法) 实验9-5 查找书籍 (20分) 给定n本书的名称 ...

  9. 【C语言】结构体排序

    这里写目录标题 快速排序 结构体排序 模仿qsort函数实现冒泡排序 三级目录 快速排序 //快速排序 void qsort(void* base, //base中存放待排序数据中第一个对象地地址si ...

最新文章

  1. 【HDU】3308 LCIS
  2. Java线程-线程八锁
  3. 深入分析Spark任务调度的原理--Java后端同学入门Spark编程系列
  4. 绝命沙虫 精度,double,模拟 牛客白月赛44
  5. 使用访问控制列表控制用户登录
  6. Linux、Windows、Mac下Docker的安装与使用
  7. 站在巨人的肩膀,2020我在使用和涉及到的开源项目
  8. echarts asp mysql 源码_如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)...
  9. MySQL二十四:索引
  10. 【实战】烂泥:XP系统的共享,你究竟知道
  11. 【Unity Shader入门】☀️ | 使用Shader实现一个彩虹球效果✨!闪闪发光的特效离我又近了一步!
  12. windows安装和配置阿帕奇+PHP服务器
  13. 网页Flash实现图片轮播特效
  14. [计算机视觉] 边缘检测Canny算法原理总结 以及 matlab代码实现
  15. C语言提取字符对应的ASCAl,ascall码对照表(ASCII码表)
  16. 绘画系统(02):【纲】Paint Devices and Backends[官翻]
  17. Word控件Spire.Doc 【图像形状】教程(4) 用 C# 中的文本替换 Word 中的图像
  18. python通信达数据_Python读取通达信数据
  19. adonis-rest - 基于AdonisJs的Restful API基础构件
  20. 珠穆朗玛币王:11月18日学会分辨 拒绝盲从

热门文章

  1. Ncut matlab 代码bug 修复
  2. linux下vsftp
  3. PowerShell2.0之维护网络(三)设置网络适配器
  4. Silverlight:如何在程序中获取网站的根目录
  5. 《构建可扩展的Web站点》书评
  6. 软件架构:5种你应该知道的模式
  7. 治堵有智慧 城市轨道交通建设开启奔跑模式
  8. JQuery弹出窗口小插件ColorBox
  9. 3.请执行命令取出linux中eth0的IP地址(考试题答案系列)
  10. Linux的kickstart安装详解