Buying Torches

2023-11-27 06:59
文章标签 buying torches

本文主要是介绍Buying Torches,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Buying Torches
在这里插入图片描述

思路

初始你有一个木棍,造出 k k k 把火炬需要 k k k 个木棍和 k k k 个煤块,而一个煤块需要 y y y 个木棍,所以需要木棍 k + y ∗ k − 1 k+y∗k−1 k+yk1个,而每次操作你可以获得 x − 1 x−1 x1 个木棍,所以为了获得木根,需要操作 ⌈ k + y ∗ k − 1 x − 1 ⌉ ⌈\frac{k+y∗k−1}{x−1}⌉ x1k+yk1,之后获得 k k k 个煤块需要操作 k k k 次,所以答案就是 ⌈ k + y ∗ k − 1 x − 1 ⌉ + k ⌈\frac{k+y∗k−1}{x−1}⌉+k x1k+yk1+k.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {int _;scanf("%d", &_);while (_--) {ll x, y, k;scanf("%lld%lld%lld", &x, &y, &k);x--;printf("%lld\n", (k * y + k + x - 2) / x + k);}return 0;
}

这篇关于Buying Torches的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427231

相关文章

BUYING FEED(贪心+树状动态规划)

BUYING FEED 时间限制: 3000 ms  |  内存限制: 65535 KB 难度:4 描述 Farmer John needs to travel to town to pick up K (1 <= K <= 100)pounds of feed. Driving D miles with K pounds of feed in his truck costs D

Uva-10626 Buying Coke DP+记忆化搜索

状态: dp[a][b][c]表示1块的a个5快的b个10块的c个的投币数 #include <stdio.h>#include <string.h>#include <iostream>#include<functional>#include <queue>#include <string>#include <map>#include <algorithm>us

Codeforces Round #408 (Div. 2) A Buying A House

传送门 #include<stdio.h>#define MAX_N 110int house[MAX_N];int main(){int n,m,k;scanf("%d%d%d",&n,&m,&k);for(int i=1;i<=n;i++){scanf("%d",&house[i]);if(house[i]==0)house[i]=k+2;}int i=1;while(1){if(m-i>=

D - Buying Shovels 买铲子问题

简单说下中文意思: 某人要买n把铲子,商店里有k种类型的包装,如: 包装1里面有1把铲子, 包装2里面有2把铲子, …… 包装k里面有k把铲子。 商店中每一种包装都有无数种。 题目要我们帮他提供买最少包装数量的方案,要求每一种包装中铲子数量是相同的,也就是说这k种类型的包装只挑一种类型购买。 举个例子: 比如买8把铲子,店里有7种不同类型的包装,则只需要买2袋就够了,买两袋4类型包装的,每一

[codeforces 1360D] Buying Shovels

题目见: 1360D 题意:给n把铁锹和一个数k,可以选择任意一个数1<= t <= k,每次都购买t个铁锹,求最少的购买次数。 思路:求n的最大的但不大于k的因数,n除以这个因数就是答案。可以想到的是:1.在k>=n的情况下,只需要购买1次。2.正常来说,为了找到1到k范围内n的最大的因数,我们需要遍历1到k,但是这样很容易导致超时。优化的方法是:遍历1~√k,如果能找到一个数x被n整除,这说明