Problem P Problem ID:1015
简单题意:某酸奶厂每星期可产任意单位的酸奶,且拥有一个足够大的储藏室来存放任意单位的酸奶。每星期产酸奶的成本yi都不同,但每星期贮藏酸奶的成本s(每单位)都相同。现告诉每星期产酸奶的成本,每星期要送往用户的酸奶的总数,以及贮藏酸奶的成本s(每单位),求最少花费。
解题思路形成过程:求出每个星期的最低成本,然后乘以每星期要送往用户的酸奶的数量,最后相加即可。
感想:注意题目中的提示:Note that the total might be too large for a 32-bit integer. int是不行的,需要用long long,否则会出错。(ps 不知道为什么,用double也会WA)
代码:
#include<iostream> #include<stdio.h> using namespace std; int a[20001][2]; int main() { int n,s; long long cnt=0; cin>>n>>s; for(int i=0;i<n;++i){ scanf("%d%d",&a[i][0],&a[i][1]); } for(int i=1;i<n;++i){ if(a[i-1][0]+s<a[i][0]) a[i][0]=a[i-1][0]+s;//求出每个星期的最低成本。 } for(int i=0;i<n;++i) cnt+=a[i][0]*a[i][1]; cout<<cnt; return 0; }