装备合成(三分)

C++ 合成2048小游戏 制作不易,要个赞不过分吧 #include <stdlib.h> #include<time.h> #include <stdio.h> #include <conio.h> #include<windows.h> #define N 4 int grid[N][N]={0}; int D=0; int M=2048; //显示 void showdata() { int i,j; system("CLS"); for(i=0; 阅读详情

装备合成

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述 

牛牛有xx件材料aa和yy件材料bb,用22件材料aa和33件材料bb可以合成一件装备,用44件材料aa和11件材料bb也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。

输入描述:

输入包含tt组数据
第一行一个整数tt
接下来tt行每行两个整数x,yx,y

输出描述:

每组数据输出一行一个整数表示答案。

示例1

输入

复制

5
4 8
7 6
8 10
100 4555
45465 24124

输出

复制

2
2
3
50
13917

备注:

 

1<=t<=100001<=t<=10000

1<=x,y<=1e91<=x,y<=1e9

因为存在单调性极值 所以可以用三分优化

/*
*@Author:   GuoJinlong
*@Language: C++
*/
//#include <bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<list>
#include<set>
#include<iomanip>
#include<cstring>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<cassert>
#include<sstream>
#include<algorithm>
using namespace std;
typedef long long  ll;
#define ull unsigned long long
#define scf(n) scanf("%d",&n)
#define scfl(n) scanf("%lld",&n)
#define prf(n) printf("%d",n)
#define prfl(n) printf("%lld",n)
#define scfd(n) scanf("%lf",&n)
#define prfd(n) printf("%.lf",n)
#define prf10(n) printf("%.10f",n)
#define ls (rt<<1)
#define rs (rt<<1|1)
#define mid (l+r)/2
#define mms(x, y) memset(x, y, sizeof x)
#define over(i,s,t) for(register long long i=s;i<=t;++i)
#define lver(i,t,s) for(register long long i=t;i>=s;--i)
const int MAXN = 305;
const int INF = 0x3f3f3f3f;
const int N=5e4+7;
const int maxn=1e5+5;
const double EPS=1e-10;
const double Pi=3.1415926535897;
//inline double max(double a,double b){
//    return a>b?a:b;
//}
//inline double min(double a,double b){
//    return a<b?a:b;
//}
inline int read() {
    int x=0,f=1; char c=getchar();
    while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
    while(c>='0'&&c<='9') {x=(x<<1)+(x<<3)+c-'0';c=getchar();}
    return x*f;
}
int xd[8] = {0, 1, 0, -1, 1, 1, -1, -1};
int yd[8] = {1, 0, -1, 0, -1, 1, -1, 1};
 
//fastPow
int fastPow(int x,int n){
    if(n==1) return x;
    int tmp=fastPow(x,n/2); //fenzi
    if(n%2==1) return tmp*tmp*x;
    else return tmp*tmp;
}
ll gcd(ll m, ll n){return n == 0 ? m : gcd(n, m%n);}
ll lcm(ll m, ll n){return m*n / gcd(m, n);}
ll pows(ll base, ll power,ll mod){ll result=1;while(power>0){if(power&1){result=result*base%mod;}power>>=1;base=(base*base)%mod;}return result;}
 
ll poww(ll base, ll power){ll result=1;while(power>0){if(power&1){result=result*base;}power>>=1;base=(base*base);}return result;}


//dijsktra
//start
//const int MAX= 10020;
//struct node {
//    int x,to,next,w;
//    bool operator <(const node &a) const{
//        return this->w>a.w;
//    }
//}G[MAX<<1];
//int cnt;
//int dis[MAX];
//int vis[MAX];
//int head[MAX];
//
//
//int m,n;
//int b[10020];
//
//
//void add(int u,int v,int w){
//    G[++cnt].to=v;
//    G[cnt].w=w;
//    G[cnt].next=head[u];
//    head[u]=cnt;
//}
//int  dijkstra(int s){
//    mms(dis,INF);
//    dis[s]=0;
//    priority_queue<node> p;
//    node t;
//    t.x=s;
//    t.w=0;
//    p.push(t);
//    while (!p.empty()) {
//        node u=p.top();
//        p.pop();
//        int v=u.x;
//        if(dis[v]!=u.w) continue;
//        for(int i=head[v];i;i=G[i].next){
//            int to=G[i].to;
//            if(dis[to]>dis[v]+G[i].w){
//                dis[to]=dis[v]+G[i].w;
//                t.x=to;
//                t.w=dis[to];
//                p.push(t);
//            }
//
//        }
//    }
//    int m1=-1;
//        int m2=-1;
//        dis[s]=-3;
//        for(int i=1;i<=n;i++){
//            if(dis[i]==INF) continue;
//            if(dis[i]>m1){
//                m2=m1;
//                m1=dis[i];
//            }
//            else if(dis[i]>m2){
//                m2=dis[i];
//            }
//        }
//        if(m1!=-1&&m2!=-1) return m1+m2;
//        return -1;
//
//}
//
//
//int main(){
//    int t;
//    cin>>t;
//    while (t--) {
//        cin>>n>>m;
//        int u,v,w;
//
//        for(int i=1;i<=m;i++){
//            cin>>u>>v>>w;
//            add(u,v,w);
//            add(v,u,w);
//        }
//        int ans=0;
//        int cnt=0;
//        for(int i=1;i<=n;i++){
//            ans=max(ans,dijkstra(i));
//        }
//        cout<<ans<<endl;
//    }
//}
//end


//e_cheak
//int vis[1000010];
//int prime[100010];
//int  e_cheak(int n){   //k为2-n素数的个数
//    for(int i=0;i<=n;i++){
//        vis[i]=0;
//    }
//    for(int i=2;i*i<=n;i++){
//        if(!vis[i]){
//            for(int j=i*i;j<=n;j+=i){
//                vis[j]=1;
//            }
//        }
//    }
//    int k=0;
//    for(int i=2;i<=n;i++){
//        if(!vis[i])
//            prime[k++]=i; //统计素数
//    }
//    return k;
//}
//
////进制转化 x转化为y进制
//string work(int x,int y){
//    string str="";
//    while(x){
//        if(x%y>=10) str+=x%y+'A'-10;
//        else str+=x%y+'0';
//        x/=y;
//    }
//    reverse(str.begin(),str.end());
//    return str;
//}
//
//
//const int MAX=1000005;
//char str[MAX];
//char pattern[MAX];
//int cnt;
//int Next[MAX];
//void  getnext(string p,int plen){
//    Next[0]=0;
//    Next[1]=0;
//    for(int i=1;i<plen;i++){
//        int j=Next[i];
//        while (j&&p[i]!=p[j]) {
//            j=Next[j];
//        }
//        Next[i+1]=(p[i]==p[j])?j+1:0;
//    }
//}
//int kmp(string s,string p){
//    int last=-1;
//    int slen=s.length();
//    int plen=p.length();
//    getnext(p,plen);
//    int j=0;
//    for(int i=0;i<slen;i++){
//        while (j&&s[i]!=p[j]) {
//            j=Next[j];
//        }
//        if(s[i]==p[j]) j++;
//        if(j==plen){
//            //start
//            return 1;
//            //end
//        }
//    }
//    return 0;
//}
//int main(){
//    int n;
//    cin>>n;
//    string t;
//    string s="";
//    for(int i=2;i<=16;i++){
//        s="";
//        s+=work(n,i);
//        if(kmp(s,t))
//        {
//            cout<<"yes";
//            return 0;
//        }
//    }
//    cout<<"no"<<endl;
//    return 0;
//}


//string s1,s2;
//int main(){
//    cin>>s1;
//    s2="cocacola";
//    int ans;
//    for(int i=0;i<s1.length();i++){
//        if(s1[i]!=s2[i])
//            ans++;
//    }
//    cout<<ceil(ans/2);
//}


//const int MAX=10010;
//
//int n;
//int a[MAX];
//int st[MAX],ed[MAX];
//int pos[MAX];
//int sum[MAX];
//int add[MAX];
////区间修改
//void change(int l,int r,int d){
//    int p=pos[l];
//    int q=pos[r];
//    if(p==q){ //情况1 区间位于一个块里面
//        for(int i=l;i<=r;i++){
//            a[i]+=d;
//        }
//        sum[p]+=d*(r-l+1);
//    }
//    else { //区间跨多个块
//        for(int i=p+1;i<=q-1;i++){
//            add[i]+=d; //完整的块里面的数据直接加上d
//        }
//        for(int i=l;i<=ed[p];i++){ //整块前面的散块
//            a[i]+=d;
//        }
//        sum[p]+=d*(ed[p]-l+1);
//        for(int i=st[q];i<=r;i++){ //整块后面的散块
//            a[i]+=d;
//        }
//        sum[q]+=d*(r-st[q]+1);
//    }
//}
//
//ll query(int l,int r){
//    int p=pos[l];
//    int q=pos[r];
//    ll ans=0;
//    if(p==q){ //整块
//        for(int i=l;i<=r;i++){
//            ans+=a[i];
//        }
//        ans+=add[p]*(r-l+1);
//    }
//    else { //有散块
//        for(int i=p+1;i<=q-1;i++){
//            ans+=sum[i]+add[i]*(ed[i]-st[i]+1); //先处理整块
//        }
//        for(int i=l;i<=ed[p];i++){ //整合散块
//            ans+=a[i];
//        }
//        ans+=add[p]*(ed[p]-l+1);
//        for(int i=st[q];i<=r;i++){
//            ans+=a[i];
//        }
//        ans+=add[q]*(r-st[q]+1);
//    }
//    return ans;
//}
//
//int main(){
//
//
//    cin>>n;
//    for(int i=1;i<=n;i++){
//        cin>>a[i];
//    }
//    //start
//    int block=sqrt(n);
//    int t=n/block;
//    if(n%block) t++;
//    for(int i=1;i<=t;i++){
//        st[i]=(i-1)*block+1;
//        ed[i]=i*block;
//    }
//    ed[t]=n;
//    for(int i=1;i<=n;i++){
//        pos[i]=(i-1)/block+1; //pos是第i个元素所在的块
//    }
//
//
//    for(int i=1;i<=t;i++){
//        for(int j=st[i];j<=ed[i];j++){
//            sum[i]+=a[j];  //sum是第i块的区间和
//        }
//    }
//    //end
//
//    int opt,l,r,c;
//    for(int i=1;i<=n;i++){
//        cin>>opt>>l>>r>>c;
//        if(opt==1){
//            cout<<query(r,r)<<endl;
//        }
//        else {
//            change(l,r,c);
//        }
//    }
//}
//

int t;
int main(){
    cin>>t;
    while (t--) {
        int x,y;
        cin>>x>>y;
        int l=0;
        int r=min(x/2,y/3);
        while (r-l>10) {
            int m1=l+(r-l)/3;
            int m2=r-(r-l)/3;
            if((m1+min((x-m1*2)/4,(y-m1*3)))>
               (m2+min((x-m2*2)/4,(y-m2*3)))){
                r=m2;
            }
            else l=m1;
        }
        int ans=0;
        for(int i=l;i<=r;i++){
            ans=max(ans,i+min((x-i*2)/4,(y-i*3)));
        }
        cout<<ans<<endl;
    }
}

装备系统的合成-算法题 这是一个公司的面试题,做个记录 下图是一个装备系统的合成图谱,箭头指向的是合成之后的装备,每合成一个装备需要消耗一些金币(标注在矩形框里面),箭头上的数字表示合成所需的材料数量。比如,要合成n个装备A,需要消耗3n个装备B、1n个装备C、4n个装备D,而且还需要消耗26n金币(装备B和装备D的合成与此类似)。 为了简单起见,下面两个题目的装备图谱都是一棵多叉树,而且玩家最初只拥有指定数量的叶子节点... 阅读详情

相关推荐

牛客算法周周练4 E题装备合成——三分搜索

链接 :装备合成 题意 : 思路 :控制变量 设 方法一生成的装备数量为 m,则方法二生成的装备数量是 min((x - 2 * m)/4, y - 3* m)。 所以生成的总量函数 f(m) = m + min((x - 2 * m)/4, y - 3* m)。 m 的范围是 [0, min(x/2,y/3) ] ,即使用方法一生成的个数。而直接线性维护此函数的极值,复杂度最高是 1e9/...

彤云望月 352

BZOJ 3443: 装备合成

orz噶爷 (就是那个叫wohenshuai的大佬) 好劲啊……………….

cgh_Andy's Blog 941

ASF-YOLO:一种基于注意尺度序列融合的细胞实例分割YOLO模型

随着样本制备技术和显微成像技术的快速发展,细胞图像的定量处理和分析在医学、细胞生物学等领域发挥着重要作用。基于卷积神经网络(CNN),可以通过神经网络训练学习不同细胞图像的特征信息,具有很强的泛化性能。两阶段的R-CNN系列[1,2,3]及其一阶段变体[4,5]是实例分割任务的经典CNN基础框架。在最近的研究中,You Only Look Once(YOLO)系列[6,7,8,9]已经成为实时实例分割中速度最快、最准确的模型之一。

m0_47867638的博客 9798

牛客练习赛59—C:装备合成

链接:https://ac.nowcoder.com/acm/contest/4743/C 来源:牛客网 题目描述 牛牛有x{x}x件材料a{a}a和y{y}y件材料b{b}b,用2{2}2件材料a{a}a和3{3}3件材料b{b}b可以合成一件装备,用4{4}4件材料a{a}a和1{1}1件材料b{b}b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描...

wait 4103

基于FPGA与红外成像的眼动追踪系统设计与实现(教学向)

本文详细介绍了基于FPGA与红外成像的眼动追踪系统设计与实现。通过红外摄像头采集图像,利用FPGA进行实时图像处理和红外瞳孔追踪,结合Verilog编程实现多目标检测与瞳孔定位。该系统适用于嵌入式视觉教学,展示了硬件搭建、算法优化及实时显示的完整流程。

g5h6i7j的博客 823

告别硬编码!用Aviator 5.3.3实现动态规则引擎,Spring Boot项目实战教程

本文详细介绍了如何使用Aviator 5.3.3在Spring Boot项目中实现动态规则引擎,告别硬编码。通过Maven依赖集成、规则模型设计、规则执行引擎实现及电商促销系统实战案例,展示了Aviator在动态规则配置中的高效应用,提升业务灵活性和开发效率。

weixin_30329623的博客 446

装备合成_

// Problem: 装备合成 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/22353/L // Memory Limit: 524288 MB // Time Limit: 2000 ms // 2022-04-28 14:56:11 // // Powered by CP Editor (https://cpeditor.org) #include<bits/stdc++.h> using names

qq_28409093的博客 408

WPF实战:HelixToolkit 3D图形开发入门指南

本文详细介绍了如何使用HelixToolkit在WPF中进行3D图形开发,从环境搭建到创建第一个3D程序(如彩色立方体),再到进阶技巧和常见问题排查。通过实战案例和性能优化建议,帮助开发者快速掌握3D场景构建和模型导入技术,提升开发效率。

weixin_29197051的博客 758

装备合成 三分

题目链接 牛牛有x件材料a和y件材料b,用2件材料a和3件材料{b}b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 三分算法学习链接 转至(https://www.cnblogs.com/techflow/p/12131376.html) 很多题解都是用的三分,但没有说明为什么可以用3分,也就是没有证明答案是一个凸函数,或者凹函数 证明 设:以2a,3b方式合成的装备有m件 以4a,b方式合成的装备有n件 m取.

RunningBeef的博客 553

OpenHarmony深度定制:从系统到模块的全景剖析与自定义模块实战

目标:在中新增一个算法库,让产品可直接调用。关闭不用的 20+ 系统部件,ROM 缩小 50 %;为自家芯片新增专用驱动模块,快速点亮开发板;内将核心算法库以部件形式集成,实现商业闭源。万物互联时代,差异化才是护城河。

m0_67505153的博客 1032

药物对接仿真软件:HADDOCK_(9).结果分析方法

HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。

kkchenjj的博客 1006

装备合成(三分)

链接:https://ac.nowcoder.com/acm/problem/200211 来源:牛客网 题目描述 牛牛有{x}x件材料{a}a和{y}y件材料{b}b,用{2}2件材料{a}a和{3}3件材料{b}b可以合成一件装备,用{4}4件材料{a}a和{1}1件材料{b}b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描述: 输入包含{t}t组数据 第一行一个整数{t}t 接下来{t}t行每行两个整数{x,y}x,y 输出描述: 每组数据输出一行一个整数表示答案。

moyangxian 370

FOC 电流采样方案对比(单电阻/双电阻/三电阻)

电流采样的作用 在FOC算法中,电流采样在反馈环节是相当重要的一部分,通常交流三相同步电机在进行坐标变换的时候,需要实时测量相电流,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,那么这里有三种方案,单电阻采样,双电阻采样,三电阻采样。本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,结合实际中可能需要注意的地方进行总结分析。 单电阻采样 双电阻采样 三电阻采样 ...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

牛客练习赛59 C.装备合成(三分)

题目描述: 牛牛有x件材料a和y件材料b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描述: 输入包含t组数据 第一行一个整数t 接下来t行每行两个整数x,y 输出描述: 每组数据输出一行一个整数表示答案。 输入 5 4 8 7 6 8 10 100 4555 45465 24124 输出 2 2...

aaHua_ 336

药物对接仿真软件:HADDOCK_(16).实践项目:抗体-抗原对接案例

定义分子结构文件。

kkchenjj的博客 579

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

装备合成 三分,动态规划

题目描述 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 牛牛有x件材料a和y件材料b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 输入描述: 输入包含t组数据 第一行一个整数t 接下来t行每行两个整数x,y 输出描述: 每组数据输出一行一个整数表示答案。 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 ..

m0_63615986的博客 642

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

牛客练习赛59 C 装备合成(三分搜索)

题目传送门 题目描述 牛牛有x件材料a和y件材料b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描述: 输入包含t组数据 第一行一个整数t 接下来t行每行两个整数x,y 输出描述: 每组数据输出一行一个整数表示答案。 示例1 输入 5 4 8 7 6 8 10 100 4555 45465 24...

s1050712899的博客 398

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

3.19装备合成(三分)

第19节 装备合成 牛牛有件材料和件材料,用件材料和件材料可以合成一件装备,用件材料和件材料也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描述: 输入包含组数据 第一行一个整数 接下来行每行两个整数 输出描述: 每组数据输出一行一个整数表示答案。 示例1 输入 5 4 8 7 6 8 10 100 4555 45465 24124 输出 2 2 3 50 13917 备注: 三分: 假设第一种装备合成了m件,那么第二种装备可以合成min((x-2m)/4,y-3m)件;那

Youkiup的博客 249

E 装备合成(三分)

题目传送门 题意: 告诉你,4件a材料和1件b材料可以合成一件装备,2件a材料和3件b材料也可以合成一件装备,给你x件a和y件b,问你最多可以合成多少件装备。 思路 我们假设最后用方案1合成了n件,那么,ans=n+min((x-4*n)/2,(y-n)/3),可以发现这个函数,是个单峰函数,当min取前一半时,递减,否则,递增。所以我们只要三分求峰值对应的n即可。设方案2有n件同理。 代码: #...

Joker_He的博客 320

【三分/贪心/数学】装备合成

【三分/贪心】装备合成 题目 题目链接 思路 设方案一A次,方案二B次 2A+4B<=X2A+4B<=X2A+4B<=X 3A+B<=Y3A+B<=Y3A+B<=Y 求A+BA+BA+B最大值 高中线性规划,对于二元式子,我们先消元。 B<=(X−2A)/4B<=(X-2A)/4B<=(X−2A)/4 B<=Y−3AB<=Y-3AB<=Y−3A 所以B<=min((X−2A)/4,Y−3A)B<=min((X-2A)/4

鱼竿钓鱼干 192

装备合成

链接: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 输入描述: 输入包含t组数据 第一行一个整数t 接下来{t}t行每行两个整数x,y 输出描述: 每组数据输出一行一个整数表示答案。 示例1 输入 复制 5 4 8 7 6 8 10 100 4555 45465 24124 输出...

qq_35975367的博客 705

ACM题--C-装备合成问题

简介 参考大佬解题解题代码来理解着题的, [大佬传送门](https://blog.youkuaiyun.com/weixin_43872728/article/details/104858125) 题目描述 牛牛有x件材料a和y件材料b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙 输入描述 输入包含t组数...

qq_40314362的博客 707

NC 200211 线性规划 / 三分

题意 传送门 NC 200211 题解 线性规划 设 222 件材料 aaa 和 333 件材料 bbb 合成 nnn 件装备,用 444 件材料 aaa 和 111 件材料 bbb 合成 mmm 件装备。转化为线性规划问题 {2n+4m≤x3n+m≤yn≥0m≥0\begin{cases} 2n+4m\leq x \\ 3n+m\leq y\\ n\geq 0 \\ m\geq 0\\ \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​2n+4m≤x3n+m≤yn≥0m≥0​ 求 max{n+m}max\{n+m

neweryyy的博客 218

装备合成----三分

check()结果方程,先增后减,凸函数 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 200010; //#define int long long int T,x,y; int check(int mid) { return mid+min((x-2*mid)/4,y-3*mid); } signed main() {

ZZU_LGY 286

NC200211 装备合成

题目链接 题目链接 题意 牛牛有x件材料a和y件材料{b}b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 思路 设合成第一个装备的个数为num,则总合成个数为num+min((a-2num)/4,b-3num) 可知该函数是一个单峰函数,通过三分解决 参考代码 #include<bits/stdc++.h> using namespace std; int a,b; int judge(int

o11oo11o的博客 145

一题多解:装备合成

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 牛牛有x件材料a和y件材料b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描述: 输入包含t组数据 第一行一个整数t 接下来t行每行两个整数x,y 输出描述: 每组数据输出一行一个整数表示答案。 示例1 输入 5 4 8 7 6 8 10 100 4555 45465 24124 输出 2 2 3 50 .

sophilex的博客 274
上一篇: Dis2(dfs树)
下一篇: CCF-CSP 第23次认证考试 202109-3脉冲神经网络(模拟)(100分)
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值