1 条题解
-
0
题意:奶牛想看电视节目,这个电视节目支持两种充值方法:
- 订阅 vip,每次花费 元,能看 天。
- 续费,在已经订阅的情况下,花费 元,多看 天。
奶牛会在 天看一次,求最省钱的订阅方法。
思路:如果下一次看距离这一次看的天数大于 ,则重新订阅,否则就续费。
时间复杂度是 。
代码:
#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; }
- 1
信息
- ID
- 6984
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 59
- 已通过
- 27
- 上传者