POJ 2393 Yogurt factory 题解 《挑战程序设计竞赛》

POJ - 2393

题目很简单,有一些需要注意的地方。

刚开始没有定义成long long的变量导致WA。

O(n2)的复杂度导致TLE。

学习@Lorazepam ,用了动态规划。

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 typedef long long ll;
 8 int n;
 9 int s;
10 ll c[10005];
11 ll y[10005];
12 
13 void solve() {
14     ll res = 0;
15     
16     for (int i = 1; i < n; i++) {
17         c[i] = min(c[i], c[i - 1] + s);  //每一周只需要和上周比较的原因是上周和上上周也比较过了。
18     } 
19     for (int i = 0; i < n; i++) {
20         res += c[i] * y[i];
21     }
22 
23     printf("%lld
", res);
24 }
25 
26 int main() {
27     scanf("%d %d", &n, &s);
28     for (int i = 0; i < n; i++) {
29         scanf("%d %d", &c[i], &y[i]);
30     }
31     solve();
32     return 0;
33 }
原文地址:https://www.cnblogs.com/carolunar/p/6386222.html