Ryan-juruo

题意

有一个人,想吃 $n$ 天肉,第 $i$ 天需要吃 $a[i]$ 块肉,第 $i$ 天超市肉价为每块 $b[i]$ 元,买来的肉可以留到后面吃,求这个人在每天都吃到肉的情况下花费的最小值。

题目标签:贪心

思路

一边输入一边计算,每次记录下最低价格,即 $mini=min(mini,b[i])$ 然后乘以每天所需要的肉的数量。即 $ans+=mini\times a[i]$ 。

代码段:

比较容易实现

for(int i=0;i<n;i++) {
	cin>>a[i]>>b[i];
    mini=min(mini,b[i]);  // 每次比较出最小肉价
    ans+=mini*a[i]; // 加上需要花的钱
}

如果你追求最优解,可以在内存上进行优化,将数组改为变量。

for(int i=0;i<n;i++) {
    cin>>a>>b; // 数组改为变量
    mini=min(mini,b);
    ans+=mini*a;
}

分类:

技术点:

相关文章:

  • 2020-09-30
  • 2021-04-05
  • 2021-10-06
  • 2018-04-11
  • 2022-01-16
  • 2021-04-18
  • 2021-08-07
  • 2021-01-30
猜你喜欢
  • 2021-07-07
  • 2020-11-02
  • 2021-03-01
  • 2021-03-11
  • 2021-03-14
  • 2021-03-17
  • 2021-09-21
相关资源
相似解决方案