测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A50862. 猫吃鱼明明家从 1 号站点出发,开车去旅游,一共要经过 n 个站点,依次为 2、3……n。由于明明带上了心爱的小猫,在每个站点都要为小猫提供一条鱼用做美餐(包括 1 号站点)。除了 1 号站点只能吃 1 号站点买的鱼,其他站点既可以吃当地买的鱼,也可吃之前经过的站点买了存入车载冰箱中的鱼。但车载冰箱消耗的电能来自汽油,所以每条鱼用冰箱保存到下一站的费用与各个站点的汽油价格有关。为使问题简化,我们…

填空题 较难

题目描述

猫吃鱼

明明家从 1 号站点出发,开车去旅游,一共要经过 n 个站点,依次为 2、3……n。

由于明明带上了心爱的小猫,在每个站点都要为小猫提供一条鱼用做美餐(包括 1 号站点)。

除了 1 号站点只能吃 1 号站点买的鱼,其他站点既可以吃当地买的鱼,也可吃之前经过的站点买了存入车载冰箱中的鱼。

但车载冰箱消耗的电能来自汽油,所以每条鱼用冰箱保存到下一站的费用与各个站点的汽油价格有关。

为使问题简化,我们约定:

(1)车从某站开出时油箱中都是此站点刚加的汽油。

(2)车载冰箱能容纳一路上需要的所有鱼。

即:每条鱼的费用既包括购买时的费用,也包括用冰箱保存鱼的费用。

编程实现:

为了降低小猫吃鱼的总代价,明明预先上网查到了这 n 个站点的鱼价和汽油价格。并据此算出每个站点买一条鱼的费用以及从该站点到下一站用冰箱保存一条鱼的费用。你能帮明明算出这一路上小猫吃鱼的最小总费用吗?

输入:

第一行:站点数 n,1<n<100。

接下来的 n 行:每行两个以空格分隔的正整数,表示:这一站买一条鱼的费用,以及从这一站把每条

鱼保存到下一站的费用,两个费用均为小于 10000 的正整数。

输出:

最小总费用,是一个正整数。

样例输入:

5
6 3
7 1
3 2
8 3
9 5

样例输出:

29

参考答案

#include <iostream> #include <stdio.h> using namespace std; int m[100][3]; int main(int argc, char *argv[]) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d %d",&m[i][1],&m[i][2]); int sum=0,min=99999; for(int i=1;i<=n;i++){ if(min>m[i][1]) min=m[i][1]; sum+=min; min+=m[i][2]; } printf("%d\n",sum); return 0; }
上一题 下一题