【每日一题】——C - Standings(AtCoder Beginner Contest 308 )

news/2025/1/16 4:48:14/

🌏博客主页:PH_modest的博客主页
🚩当前专栏:每日一题
💌其他专栏:
🔴 每日反刍
🟡 C++跬步积累
🟢 C语言跬步积累
🌈座右铭:广积粮,缓称王!

一.题目描述

这里是引用

题目大意:
在这里插入图片描述

题目链接:C - Standings(AtCoder Beginner Contest 308 )

二.思路分析

  1. 定义一个结构体用来存放每个人的信息,num表示人的编号(即顺序,可以看成下标),x表示成功的次数,y表示失败的次数,rate表示成功率(x/(x+y))
  2. 本体思路不是很难,但细节较多,最后的成功率需要开long double ,以及qsort如何排序结构体

三.代码展示

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
typedef struct people
{int num;long long x;long long y;long double rate;
}sp;int cmp(const void* a, const void* b)
{sp* c = (sp*)a;sp* d = (sp*)b;if (c->rate > d->rate){return -1;}else if (c->rate < d->rate){return 1;}else{return 0;}
}int main()
{int n = 0;scanf("%d", &n);int i = 0;int j = 0;sp arr[3000];for (i = 0; i < n; i++){scanf("%lld %lld", &(arr[i].x), &(arr[i].y));arr[i].num = i + 1;}for (i = 0; i < n; i++){arr[i].rate = (long double)arr[i].x / (arr[i].x + arr[i].y);}qsort(arr, n, sizeof(sp), cmp);for (i = 0; i < n; i++){printf("%d ", arr[i].num);}return 0;
}

最后:

每日一题系列旨在养成刷题的习惯,所以对代码的解释并不会特别详细,但足够引导大家写出来,选的题目都不会特别难,但也不是特别简单,比较考验大家的基础和应用能力,我希望能够将这个系列一直写下去,也希望大家能够和我一起坚持每天写代码。

在这里送大家一句话:广积粮,缓称王!

致歉:

原本打算坚持这个系列的,但由于部分原因加上自己的懒惰,断更很久了,最近暑假在学校进行算法集训,每天都在刷atcoder和cf的题,最近受到一位朋友的鼓舞,打算将这个系列跟新下去,之后的题目都会是从atcoder和coderforces上挑选,质量都不会太差,想要练习算法的朋友不要错过了~


http://www.ppmy.cn/news/973289.html

相关文章

快速乘法(防止数过大相乘超出long long)

inline LL ksc(LL x,LL y,LL mod){return (x*y-(LL)((long double)x/mod*y)*modmod)%mod; }

线性代数矩阵乘法用C++代码实现,再也不用担心算错啦!

c实现矩阵相乘 矩阵乘法的定义矩阵相乘的代码完整的程序实现线代其它操作的参考链接 线性代数矩阵相乘一旦阶数多了算的可真是让人CPU疼&#xff0c;但可爱的计算机是不怕累又超听话&#xff0c;所以用一个c程序帮助你轻松解决矩阵相乘&#xff01;&#xff01; 矩阵乘法的定义…

chatgpt赋能python:Python计算乘数-一文了解Python计算乘数的基础知识和应用

Python 计算乘数 - 一文了解Python计算乘数的基础知识和应用 介绍 Python是一种容易学习且强大的编程语言&#xff0c;它已经成为数据科学和机器学习领域中最受欢迎的语言之一。Python的优点之一是它的语法简单易懂&#xff0c;使得它成为编写计算乘数的理想语言。 在本文中…

2.5.3 乘法

这段话告诉我们&#xff0c;在程序中有一条乘法运算语句。这个程序会让计算机帮助我们完成一个简单的数学问题&#xff1a;计算6乘以2。和我们平常做数学题一样&#xff0c;程序使用*号表示乘法运算。语句 “feet 6 * fathoms;” 可以这样理解&#xff1a;它会找到之前我们定义…

乘法程序

任务目标&#xff1a; 完成简单的乘法功能。 实现步骤&#xff1a; 1&#xff0c;编写activity_main.xml 2&#xff0c;编写MainActivity 运行结果&#xff1a;

如何用计算机算乘法,计算机如何做乘法运算的?

通过加减法和移位来实现的。 把除法转成乘法&#xff0c;乘法转成加法&#xff0c;减法也转成加法。 具体的操作步骤&#xff1a; 假设计算3*3&#xff0c;原码是0011 * 0011(以4位存贮单元&#xff0c;因为是原码&#xff0c;最高位不代表符号位) 3个寄存器分别存放乘数0011 被…

chatgpt赋能python:Python中如何计算乘方?

Python中如何计算乘方&#xff1f; 在Python中&#xff0c;乘方是一种常见的数学计算。如果你正在寻找一种快速、简便的方法来计算数的乘方&#xff0c;那么Python是你的最佳选择。在此文章中&#xff0c;我们将介绍Python中计算乘方的几种方法&#xff0c;并帮助您选择最适合…

利用对位相乘法计算线性卷积-附Matlab代码

目录 1.线性卷积原理 2.利用对位相乘法计算线性卷积 3.Matlab实操 3.1源代码 3.2仿真结果 线性卷积原理 公示&#xff08;1&#xff09;为两个离散非周期序列进行线性卷积 一般我们计算线性卷积时使用图解法最为常见&#xff0c;简单概括为“变量置换”、“翻转”、“平移…