题意:
Duff每天要吃ai千克肉,这天肉的价格为pi(这天可以买好多好多肉),现在给你一个数值n为Duff吃肉的天数,求出用最少的钱满足Duff的条件。
思路:
只要判断相邻两天中,今天的总花费 = ai*pi 与昨天的总花费(还有加上今天要吃的肉的重量)= (ai-1 + ai)*pi-1 。
代码如下:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <fstream> 5 #include <algorithm> 6 #include <ctime> 7 #include <cmath> 8 #include <cstdlib> 9 10 using namespace std; 11 12 int main() 13 { 14 int n, sum, tot; 15 while(scanf("%d", &n)==1&&n) 16 { 17 tot = 0; 18 int i; 19 int a, p, x, y; 20 for(i = 0; i < n; i++ ) 21 { 22 sum = 0; 23 scanf("%d%d", &a, &p); 24 if(i == 0) 25 { 26 sum += a*p; 27 x = a; 28 y = p; 29 } 30 else 31 { 32 if(a*p + x*y > (x+a)*y) 33 { 34 sum += a*y; 35 } 36 else 37 { 38 sum += a*p; 39 x = a; 40 y = p; 41 } 42 } 43 tot += sum; 44 } 45 printf("%d\n", tot); 46 } 47 48 return 0; 49 }
时间: 2024-10-17 12:26:47