Problem_A(588A):

题意:

  Duff 很喜欢吃肉, 每天都要吃,然而她又懒得下楼。 可以买很多放在家里慢慢吃。然而肉价每天都在变化,现给定一个n, 表示有多少天,然后第i天吃ai kg的肉, 当天的价格为pi。

  问满足Duff的要求, 最少需要多少钱。

 

思路:

  稍稍分析, 可以得知, 应该维护一个最小价格。然后按照最小价格去买那一段区间的肉。

 

代码:

  

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <ctime>
 6 #include <set>
 7 #include <map>
 8 #include <list>
 9 #include <stack>
10 #include <queue>
11 #include <string>
12 #include <vector>
13 #include <fstream>
14 #include <iterator>
15 #include <iostream>
16 #include <algorithm>
17 using namespace std;
18 #define LL long long
19 #define INF 0x3f3f3f3f
20 #define MOD 1000000007
21 #define eps 1e-6
22 #define MAXN 1000000
23 #define MAXM 100
24 #define dd {cout<<"debug"<<endl;}
25 #define pa {system("pause");}
26 #define p(x) {printf("%d\n", x);}
27 #define pd(x) {printf("%.7lf\n", x);}
28 #define k(x) {printf("Case %d: ", ++x);}
29 #define s(x) {scanf("%d", &x);}
30 #define sd(x) {scanf("%lf", &x);}
31 #define mes(x, d) {memset(x, d, sizeof(x));}
32 #define do(i, x) for(i = 0; i < x; i ++)
33 #define dod(i, x, l) for(i = x; i >= l; i --)
34 #define doe(i, x) for(i = 1; i <= x; i ++)
35 int n;
36 int a, p;
37 
38 int main()
39 {
40     scanf("%d", &n);
41     int sum = 0, min_p = INF, num = 0;
42     for(int i = 0; i < n; i ++)
43     {
44         scanf("%d %d", &a, &p);
45         if(p < min_p)
46         {
47             sum = sum + num * min_p;
48             min_p = p;
49             num = a;
50         }
51         else 
52             num += a;
53     }
54     if(num) sum = sum + num * min_p;
55     printf("%d\n", sum);
56     return 0;
57 }
View Code

相关文章:

  • 2021-06-14
  • 2022-02-11
  • 2021-07-27
  • 2022-02-28
  • 2021-12-24
  • 2021-11-15
  • 2022-02-18
猜你喜欢
  • 2021-08-19
  • 2022-12-23
  • 2021-10-19
  • 2021-08-08
  • 2022-01-29
  • 2021-12-05
  • 2021-11-08
相关资源
相似解决方案