【结构体】 & 洛谷U412652 你们多久才能喝完奶茶?(QWQ)

这篇文章讨论了如何使用C++编程语言中的结构体和数组来解决一个关于数列的问题,涉及计算奶茶喝完所需时间并按时间排序,找出最先喝完的m个人的名字。
摘要由CSDN通过智能技术生成

题意

题目链接:你们多久才能喝完奶茶?(QWQ)

  1. n n n 个数列,每个数列中包含三个数:奶茶容积,喝奶茶的速度,喝奶茶的人的名字

  2. 其中,保证喝奶茶容积能被奶茶的速度整除,保证这个商不重复

  3. 最后需要求解前 m m m 个数的人的名字

2 2 2 我们可以知道,这道题需要使用long long或者int,并且可以知道最后不用再排一次序

结构体

结构体的定义:

struct T{
	E n;
};//其中T代表结构体的变量名,E代表要定义的变量

定义结构体变量

T name;
T a[maxn]={};

结构体的调用

const int maxn=1e5+7struct T{
	int name;
	int val;
}a[maxn];
//定义上述这么一个结构体
a[i].name; //就可以访问a[i]中的结构体的name的值
a[i].val; //同上
T a;//定义单个变量以用于访问结构体
a.name; //访问a中的结构体name的值
a.val; //同上

code↓

#include <bits/stdc++.h>
using namespace std;
int n,m;
const int maxn=3e5+5;//定义边界值
struct Friend{//定义一个结构体来存储他们
   int time;//喝奶茶的速度
   int valu;//奶茶容积
   string name;//喝奶茶的人的名字
   int sum;//他们喝完奶茶所需要的时间
}a[maxn];//定义一个数组来进行存储
bool cmp(Friend x,Friend y){
   return x.sum>y.sum;
}
int main(){
   ios::sync_with_stdio(false);
   cin.tie(0),cout.tie(0);//输入优化
   cin>>n>>m;
   for(int i=1;i<=n;i++){
   		cin>>a[i].time>>a[i].valu>>a[i].name;//注意先输入的是速度,然后再输入的是容积,最后是名字
   		a[i].sum=(a[i].valu/a[i].time);//求出喝完奶茶所需要的时间
   }
   sort(a+1,a+1+n,cmp);//进行排序
   for(int i=1;i<=m;i++) cout<<a[i].name<<endl;//输出
   return 0;
}

自己出的题目,大家支持一下QWQ

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花火Spark

鼓励,如星光,照亮我创作的前路

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值