模拟赛五补题报告

一如既往的没有题目大意(doge)

题目 牛奶(milk) 树组(Traary) 智乃的兔子(usagi)

一颗成熟的奥术飞弹(missiles)

赛中得分 100 30 5 10
赛后得分 100 100

题目分析

T1:牛奶(milk)

题目描述

每天一杯奶,健壮切题人。

Meowowco 有每天喝牛奶的习惯,因为牛奶是膳食中蛋白质、钙、磷、维生素 A、维生素 D 和维生素 B2 的重要来源之一,可以让经常出勤的 Meowowco 变得健壮。因此她每个月都会去买一些牛奶屯在冰箱里。

今天又到了采购的日子,Meowowco 又来到了熟悉的超市,看着冰箱里陈列着价格不同的牛奶,她摸了摸自己的钱包,

“糟糕,出勤花了太多的钱了。。。。。。”

不过这都不是问题,毕竟又不是把所有钱都花完了,只是预算被压缩了。现在问题来了,冰箱里有 n 个种类的牛奶,它们有各自的数量 ai​​ 和价格 b​i​​。作为一只学过动态规划的猫,Meowowco 一个月需要 m 盒牛奶,她想知道屯够一个月的牛奶量的最小开销。

输入描述

第一行二个整数 n,m,表示牛奶的种类和牛奶需求量。

接下来 nn 行,每行两个整数 ai,bi,表示第 i 种牛奶的数量(盒),和这种牛奶的单价(元)。

保证超市里牛奶的数量大于等于 Meowowco 的需求,即保证 ∑ai≥m。

输出描述

包含一个整数,表示 Meowowco 采购所需的牛奶所要的最小费用。

输入样例

5 100
20 5
40 9
10 3
80 8
30 6

输出样例

630

样例解释

10×3+20×5+30×6+40×8=30+100+180+320=630,即售价为 3、5、6 的牛奶全部购入,售价为 8 的牛奶购入 40 盒。

数据范围

对于 50% 的数据:1≤n≤10^3,1≤m≤10^3。

对于另外 50% 的数据:1≤n≤10^5,1≤m≤10^5​​。

对于所有的数据一定满足:1≤ai≤100,1≤bi≤10^5​​。

测试样例下载

milkicon-default.png?t=O83Ahttps://kdyfiles.oss-cn-hangzhou.aliyuncs.com/kdycec0be6d189d4770b0e7903c6dacd24b.zip

赛中思路 

结构体sort,然后没有然后了

正解代码

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
int n,m;
struct node{
	int a,b;
}s[100005];
bool cmp(node x,node y){
	if(x.b!=y.b)return x.b<y.b;
	return x.a>y.a;
}
int main(){
	//freopen("milk.in","r",stdin);
	//freopen("milk.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++)scanf("%d%d",&s[i].a,&s[i].b);
	sort(s,s+n,cmp);
	ll ans=0;
	for(int i=0;i<n;i++){
		if(m>=s[i].a){
			ans+=1ll*s[i].a*s[i].b;
			m-=s[i].a;
		}else{
			ans+=1ll*m*s[i].b;
			m=0; 
		}
		if(m<=0)break;
	}printf("%lld",ans);
	//fclose(stdin);
	//fclose(stdout);
	return 0;
} 
/*
5 100
20 5
40 9
10 3
80 8
30 6
*/

T2:树组(Traary)

题目描述

树组(Traary)是有序的树序列。

树组把树按有序的形式组织起来的一种形式。

这些有序排列的树的集合称为树组。

。。。。。。

Meowowco 有 n 棵树苗,今天要在数组的每一个位置种(物理)上一棵树。种好之后,我们称它为树组。

最开始,树组中所有的树的高度为 0。每天过后,每棵树会自然生长 11 单位高度。

Meowowco 的种树过程持续 m&

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值