[NC200211]装备合成

装备合成

https://ac.nowcoder.com/acm/problem/200211

第一次做三分法,昨天晚上被边界问题折么了好久,初学三分的话一定要好好想想这个边界问题。
题解:三分法,一共有两种装备,并且这两种装备的权值是一样的,这里叫做装备A和装备B,把r设为最多能做多少件装备A。
check函数为:已知装备A的件数,看看剩下的材料能做多少件装备B,返回能做件数的总数。

/*Keep on going Never give up*/
#pragma GCC optimize(3,"Ofast","inline")
#include <bits/stdc++.h>
const int maxn = 1010;
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;
typedef long long ll;
const int mod = 100000000;
using namespace std;
int x,y;
int check(int n){
    return n+min((x-2*n)/4,y-3*n);
}
int main(){
    int t;
    cin>>t;
    while (t--){
        cin>>x>>y;
        int l=0,r=min(x/2,y/3);
        int ans=0;
        while (l<=r){
            int mid1=l+(r-l)/3;
            int mid2=r-(r-l)/3;
            if(l==r){
                ans=check(l);
                break;
            }
            if(check(mid1)>check(mid2)){
                ans=check(mid1);
                r=mid2-1;
            }
            else l=mid1+1;
            //cout<<l<<" "<<r<<endl;
        }
        cout<<ans<<endl;
    }
    return  0;
}
题解 文章被收录于专栏

主要写一些题目的题解

全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
2025-12-26 10:52
河北传媒学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务