题目很简单,有一些需要注意的地方。
刚开始没有定义成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 }