P9123 [USACO23FEB] Watching Mooloo B 题解
题意:奶牛想看电视节目,这个电视节目支持两种充值方法:
- 订阅 vip,每次花费
k+1 元,能看1 天。 - 续费,在已经订阅的情况下,花费
1 元,多看1 天。
奶牛会在
思路:如果下一次看距离这一次看的天数大于
时间复杂度是
代码:
#include<iostream>
using namespace std;
long long n,k,a[100001],ans,tmp;
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
tmp=i;
for(int j=i+1;j<=n;j++){
if(a[j]-a[j-1]<=k){
ans+=a[j]-a[j-1];
tmp++;//如果续费是划算的
}
else break;//如果续费已经不再划算
}
ans++;
ans+=k;
i=tmp;
}
cout<<ans;
}