返回顶部

Educational Codeforces Round 95 (Rated for Div. 2) A. Buying Torches (数学)

  • 题意:刚开始你有一个木棍,造一个火炬需要一个木根和一个煤块,现在你可以用一个木棍换取\(x\)个木棍,或者\(y\)根木棍换一个煤块,消耗一次操作,问最少需要操作多少次才能造出\(k\)把火炬.

  • 题解:初始你有一个木棍,造出\(k\)把火炬需要\(k\)个木棍和\(k\)个煤块,而一个煤块需要\(y\)个木棍,所以需要木棍\(k+y*k-1\)个,而每次操作你可以获得\(x-1\)个木棍,所以为了获得木根,需要操作\(\lceil k+y*k-1/(x-1)\rceil\),之后获得\(k\)个煤块需要操作\(k\)次,所以答案就是\(\lceil k+y*k-1/(x-1)\rceil+k\).

  • 代码:

    int t;
    int n;
    ll x,y,k;
    
    int main() {
        //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    	t=read();
    	while(t--){
    		x=read();
    		y=read();
    		k=read();
    		ll cnt=k+y*k-1;
    		ll res=(cnt-1)/(x-1)+1;
    		printf("%lld\n",res+k);
    	}
    
        return 0;
    }
    
posted @ 2020-09-15 18:35  _Kolibri  阅读(225)  评论(0)    收藏  举报