Our Tanya is Crying Out Loud
Posted dealer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Our Tanya is Crying Out Loud相关的知识,希望对你有一定的参考价值。
Right now she actually isn‘t. But she will be, if you don‘t solve this problem.
You are given integers n, k, A and B. There is a number x, which is initially equal to n. You are allowed to perform two types of operations:
- Subtract 1 from x. This operation costs you A coins.
- Divide x by k. Can be performed only if x is divisible by k. This operation costs you B coins.
The first line contains a single integer n (1 ≤ n ≤ 2·109).
The second line contains a single integer k (1 ≤ k ≤ 2·109).
The third line contains a single integer A (1 ≤ A ≤ 2·109).
The fourth line contains a single integer B (1 ≤ B ≤ 2·109).
Output a single integer — the minimum amount of coins you have to pay to make x equal to 1.
9
2
3
1
6
5
5
2
20
8
19
3
4
2
12
In the first testcase, the optimal strategy is as follows:
- Subtract 1 from x (9 → 8) paying 3 coins.
- Divide x by 2 (8 → 4) paying 1 coin.
- Divide x by 2 (4 → 2) paying 1 coin.
- Divide x by 2 (2 → 1) paying 1 coin.
The total cost is 6 coins.
In the second test case the optimal strategy is to subtract 1 from x 4 times paying 8 coins in total.
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <set> #include <queue> #include <map> #include <sstream> #include <cstdio> #include <cstring> #include <numeric> #include <cmath> #include <unordered_set> #include <unordered_map> //#include <xfunctional> #define ll long long #define mod 1000000007 using namespace std; int dir[4][2] = { { 0,1 },{ 0,-1 },{ -1,0 },{ 1,0 } }; const long long INF = 0x7f7f7f7f7f7f7f7f; const int inf = 0x3f3f3f3f; int main() { ll n, k, A, B; ll res=0; cin >> n >> k >> A >> B; if (k == 1) cout << (n - 1)*A; else { while (n != 1) { if (n < k) { res += (n - 1)*A; n = 1; } else { if (n%k > 0) { res += (n%k)*A; n -= n%k; } if ((n - n / k)*A > B) { res += B; n /= k; } else { res += (n - n / k)*A; n /= k; } } } cout << res; } return 0; }
以上是关于Our Tanya is Crying Out Loud的主要内容,如果未能解决你的问题,请参考以下文章
Where we love is home, home that our feet may leave, but not our hearts.
Check out our list of adidas NMD Singapore retailers
Error: Another program is already listening on a port that one of our HTTP servers is configured to
supervisord 启动失败 Error: Another program is already listening on a port that one of our HTTP serve...