CodeFoeces-940B

题目

原题链接:B. Our Tanya is Crying Out Loud

题意

给出n,k,a,b四个数,每次可执行两种操作:
1.n-=1,每次消耗a;
2.n/=k,每次消耗b.
问最少的消耗使n等于1。
每次比较减和除哪个便宜,若不能除则减到能除为止。

代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    __int64 n,k,a,b,ans=0;
    cin>>n>>k>>a>>b;
    if(n<k || k==1) {
        cout<<(n-1)*a;
    } else {
        while(n>=k) {
            if(n%k==0) {
                if(b > a*(n-(n/k)) ) {
                    ans+=a*(n-(n/k));
                    n=(n/k);
                }else{
                    n/=k;
                    ans+=b;
                }
            } else {
                ans+=(n-(n/k)*k)*a;
                n=(n/k)*k;
            }
        }
        ans+=(n-1)*a;
        cout<<ans;
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这个不错分享给大家,从扣上看到的,就转过来了 《电脑专业英语》 file [fail] n. 文件;v. 保存文...
    麦子先生R阅读 7,111评论 5 24
  • 起床时间:7:30 运动项目:快走 成果:3.3km,32分钟,205大卡
    温暖的小胖纸阅读 639评论 0 49
  • 跃跃欲试了很久,一直想写出一本属于我自己的书,书里是有血有肉的人物,人物身上有或者没有我的影子,编写一个不一样的...
    AIMEE慢慢阅读 149评论 0 0
  • 我想和你一起生活 在某个小镇, 共享无尽的黄昏 和绵绵不绝的钟声。 在这个小镇的旅店里—— 古老时钟敲出的 微弱...
    随意阳光阅读 980评论 10 12
  • 心情平和一点,心思简单一点。
    青箬笠绿蓑衣阅读 116评论 0 1

友情链接更多精彩内容