1 条题解

  • 0
    @ 2026-5-28 16:17:39

    数学题

    第一步:因为要尽可能拥有 A 芯片,所以要尽可能把 B 芯片都转成 A 芯片。

    第二步:分两种情况。第一种情况,尽可能随机得到 B 芯片,再用 B 芯片变成 A 芯片。第二种情况,由于我们可能可以用少量的 B 芯片换到 A 芯片,于是我们不如直接随机获得 A 芯片,再获得尽量多的 B 芯片,两种情况直接取最大值即可。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    using ll=long long;
    
    int main(){
    	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    	int T;cin>>T;while(T--){
    		ll A,B,ca,cb,fa,ans=0;cin>>A>>B>>ca>>cb>>fa;
    		A+=(B/cb)*ca;
    		B%=cb;
    		A=fa-A;
    		if(A<=0) cout<<0<<"\n";
    		else cout<<max(A-1+cb-B,(A-1)%ca+(A+ca-1)/ca*cb-B)<<"\n";
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    2261
    时间
    2000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    31
    已通过
    12
    上传者