CF-1183C Computer Game

1678292-20190722185010674-2146976923.png

基本思路

\[ \begin{array}{l} k,n,a,b,假设能完成游戏,则有\\ x_1+x_2=n\\ x_1*a+x_2*b<k\\ 由于 \quad a<b \quad则有\\ x_1*(a-b)+(x_1+x_2)*b<k\\ x<\frac{k-n*b}{a-b} \end{array} 复杂度O(1) \]

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll q,k,n,a,b;
int main()
{
    cin>>q;
    while(q--)
    {
        cin>>k>>n>>a>>b;
        ll x;
        if((k-b*n)<=0) cout<<-1<<endl;
        else 
        {
            x=(k-n*b)/(a-b);
            if((k-n*b)%(a-b)==0)x--;
            cout<<min(x,n)<<endl;
        }
    }
    return 0;
}

转载于:https://www.cnblogs.com/tldr/p/11227749.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值