装备合成 三分

牛客算法周周练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/... 阅读详情

题目链接

链接:https://ac.nowcoder.com/acm/contest/18907/N
来源:牛客网

题目描述

在这里插入图片描述

牛牛有{x}x件材料{a}a和{y}y件材料{b}b,用{2}2件材料{a}a和{3}3件材料{b}b可以合成一件装备,用{4}4件材料{a}a和{1}1件材料{b}b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。



解析

使用三分的使用一定要注意要么这是个二次函数,要么这是个分段的凹凸函数,千万不能把两条斜率不同但作用域重合了的直线合并出来的函数盲目的看成一个凹凸函数
本题其实也可以对极值点的两边分别二分求最优解

证明

设:以2a,3b方式合成的装备有m件 以4a,b方式合成的装备有n件

m取值范围为 0 ~ min(x/2,y/3),
合成的装备总数就是
F(m) = m + min((x-2,)/4,y-3m);

为分段函数,拆掉min得到
F(m) = (x+2m)/4, m <= (4y -x)/10;
F(m) = y - 2m ,m > (4y - x)/10;

函数F(m)中x,y为常数,所以F(m)关于m从左到右先增后减,为凸函数,所以可以对函数F(m)使用三分


三分算法使用技巧

这里有一个三分的技巧,考虑到整数除法的小数丢失,所以你最后得到的是近似点,可能不是真正的极值点,但它一定非常靠近极值点,这时你只要枚举一下近似点的附近的那几个点就行

code

#include<bits/stdc++.h>
using namespace std;
int main(){
    int T;    cin >> T;
    while(T--){
        int x,y;    cin >> x >> y;
        int l,r,m1,m2;
        l = 0; r = min(x/2,y/3);
       
        while(l < r){
            m1 = l + (r - l)/3;
            m2 = r - (r - l)/3;
            int ans1 = m1 + min( (x - 2 * m1)/4, y - m1 * 3);
            int ans2 = m2 + min( (x - 2 * m2)/4, y - m2 * 3);
            
            if(ans1 >= ans2)
                r = m2 - 1;
            else l = m1 + 1;
        }
        
        int ans = 0;
        int ma = min(x/2,y/3);
        
        for(int i = max(0,l - 3) ; i <= min(l + 3,ma); ++i)//枚举近似点范围的所有点
            ans = max(ans,i + min( (x - i * 2)/4, y - i * 3));
        cout << ans << endl;
    }
    return 0;
}
OpenClaw 企业级自动化系统架构设计与实现 本文介绍基于 OpenClaw 构建的企业级自动化系统的完整架构设计、技术选型、实现细节和性能优化方案。 阅读详情

相关推荐

SpotBugs使用

spotbugs命令行参数解析

javajingling的专栏 2947

牛客练习赛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

【笔记软件obsidian】从入门到精通

目录 一、前言 二、下载及安装 三、【选修】ios用户如何通过iCloud进行三平台同步 四、基本Markdown语法 五、【选修】插件的下载及安装方式 六、

patrick的博客 9万+

一题多解:装备合成

链接:登录—专业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

【论文阅读】AU检测|《Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment》

摘要 本文旨在从大量没有人工标注的视频中学习用于面部动作单元检测的区分表示。受面部动作是面部肌肉运动这一事实的启发,论文将这些运动描述为不同帧中两幅面部图像之间的转换,并将其用作学习表示的自我监控信号。但是,在不受控制的情况下,这种转换是由面部动作和头部运动引起的。为了消除头部运动的影响,我们提出了一个双圈自动编码器(TCAE),它可以解开面部动作相关运动和头部运动相关运动。具体而言,TCAE被训练成分别将源面部的面部动作和头部姿态改变为目标面部的面部动作和头部姿态。我们的实验验证了TCAE解耦运动的能力。

Celine的博客 4554

别再让电池充不满!用CN3791芯片设计太阳能充电电路,这几个调试坑我帮你踩了

本文详细解析了使用CN3791芯片设计太阳能充电电路时的常见调试问题及解决方案。从RCS电阻的选择到MPPT电压偏差的修正,再到线路损耗和温度补偿的优化,提供了全面的避坑指南。通过实测数据和优化方案,帮助工程师提升锂电池充电效率,确保太阳能充电电路的稳定性和可靠性。

weixin_42528191的博客 240

pygame 的装备合成

def equit_hecheng(group, kind): grp = group.deepcopy() # copy.deepcopy() t = True for mapp in k_list: for k in kind: if mapp.name in k.keys(): if mapp.num < k[mapp.name]: t.

lixu_0807的博客 2905

Orin+ GMSL (Ser 9295+Des 9296)流程分析(1)

orin gmsl

乐于分享 2655

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

数字IC/FPGA 秋招知识点不全面整理

数字IC/FPGA 秋招知识点不全面整理

w0shishabi的博客 7866

运放比较电路分析以及应用

摘要:本文介绍了基于LM321运放的同相输入型单限电压比较器电路。该电路通过运放开环工作模式实现电平判断:当输入信号Vs+>0V时输出+15V高电平,Vs+<0V时输出≈0V低电平。典型应用包括直流电压过零检测、交流信号整形、电池欠压报警和数字信号噪声过滤。电路具有结构简单(仅需1个运放和1个电阻)、成本低的优势,适用于传感器信号处理、波形转换等场景。使用时需注意参考电平调整、输出电平匹配等问题,如需抗噪声可增加正反馈电阻构成施密特触发器。该电路是运放实现简单电平逻辑的经典方案。

qq_37999850的博客 398

装备合成(牛客)

牛牛有x件材料a和y件材料b,用2件材料a和3件材料b可以合成一件装备,用4件材料a和1件材料b也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。设k为方案一合成装备数,那么mid-k为方案二合成装备数,可构建不等式。

Ch714254994的博客 304

Android SystemUI——车载CarSystemUI加载(八)

车载 CarSystemUI 是指专门为汽车环境设计的用户界面和用户体验(UI/UX),它通常与 Android Automotive OS 或其他嵌入式操作系统一起工作,为驾驶者和乘客提供安全、直观且高效的交互方式。Android Automotive OS 是 Google 专门为汽车开发的操作系统版本,它基于 Android 平台,并针对车辆内部的使用进行了优化。

小旭的专栏 2172

装备合成(三分)

链接: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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

牛客练习赛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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

装备合成 三分,动态规划

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

m0_63615986的博客 642

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对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

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

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

【三分/贪心】装备合成 题目 题目链接 思路 设方案一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 题目描述 牛牛有xx件材料aa和yy件材料bb,用22件材料aa和33件材料bb可以合成一件装备,用44件材料aa和11件材料bb也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。 输入描述: 输入包含tt组数据 第一行一个整数tt 接下来tt行每行两个整数x,yx,y 输出描述...

m0_57006708的博客 358

装备合成

链接: 时间限制: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

牛客练习赛 59 C. 装备合成

链接 https://ac.nowcoder.com/acm/contest/4743/C 题意 AAA 有 xxx 个,BBB 有 yyy 个 222 个物品 AAA 和 333 个物品 BBB 可以合成一件装备 444 个物品 AAA 和 111 个物品 BBB 可以合成一件装备 求最多可以合成多少件装备 思路 三分 设用第一种方法合成的装备为 nnn 件,那么总共合成的装备为:n+min((x−2∗n)/4,y−3∗n)n+min((x-2*n)/4,y-3*n)n+min((x−2∗n)/4,y−3

c4Lnn 的 优快云 博客 284
上一篇: lower_bound、upper_bound模拟及解析
下一篇: 第k小数 快排变种
RunningBeef
博客等级 码龄7年 29粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值