【三分/贪心】装备合成

题目

题目链接

思路

设方案一A次,方案二B次
2 A + 4 B < = X 2A+4B<=X 2A+4B<=X
3 A + B < = Y 3A+B<=Y 3A+B<=Y
求 A + B A+B A+B最大值
高中线性规划,对于二元式子,我们先消元。
B < = ( X − 2 A ) / 4 B<=(X-2A)/4 B<=(X−2A)/4
B < = Y − 3 A B<=Y-3A B<=Y−3A
所以 B < = m i n ( ( X − 2 A ) / 4 , Y − 3 A ) B<=min((X-2A)/4,Y-3A) B<=min((X−2A)/4,Y−3A)
目标为: f ( x ) = A + m i n ( ( X − 2 A ) / 4 , Y − 3 A ) f(x)=A+min((X-2A)/4,Y-3A) f(x)=A+min((X−2A)/4,Y−3A)
如果对A进行枚举,那必然超时,接下来观察目标函数的性质
( X − 2 A ) / 4 < Y − 3 A 时 , 即 X < 4 Y − 10 A … … 单 调 上 升 (X-2A)/4<Y-3A时,即X<4Y-10A……单调上升 (X−2A)/4<Y−3A时,即X<4Y−10A……单调上升
f ( x ) = A + ( X − 2 A ) / 4 … … ① 单 调 上 升 f(x)=A+(X-2A)/4……①单调上升 f(x)=A+(X−2A)/4……①单调上升
X > = 4 Y − 10 A 时 X>=4Y-10A时 X>=4Y−10A时
f ( x ) = Y − 2 A … … ② 单 调 下 降 f(x)=Y-2A……②单调下降 f(x)=Y−2A……②单调下降
显然的,先①后②,构成的函数时是个凸函数

对于凸函数,我们采用三分法来解决

代码

// Problem: 装备合成
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/problem/200211
// Memory Limit: 524288 MB
// Time Limit: 2000 ms
// FishingRod#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
typedef long long LL;
typedef pair<int,int> PII;
#define MULINPUT
/*DATA & KEY
t 1 1e4
x 1 1e9
y 1 1e9
*/
int T;
LL x,y;
LL check(LL mid)
{return mid+min((x-2*mid)/4,y-3*mid);
}
void solve()
{//NEW DATA CLEAN//NOTE!!!cin>>x>>y;LL l=0,r=min(x/2,y/3);while(l<r){LL lmid=l+(r-l)/3;LL rmid=r-(r-l)/3;if(check(lmid)>check(rmid))r=rmid-1;else l=lmid+1;}cout<<check(l)<<endl;
}int main()
{#ifdef MULINPUTscanf("%d",&T);for(int i=1;i<=T;i++)solve();#elsesolve();#endifreturn 0;
}

反思

多种选择可以设每个选择进行多少次。
求最值:二分,三分,DP
如何把一个问题转为三分/三分?
首先对于多元的式子进行校园,先看答案,然后看限制。
然后想想暴力的,转为一元问题后暴力枚举
此时可以打表观察规律,或者像这题一样讨论单调性

【三分/贪心/数学】装备合成相关推荐

  1. 3.19装备合成(三分)

    第19节 装备合成 牛牛有件材料和件材料,用件材料和件材料可以合成一件装备,用件材料和件材料也可以合成一件装备.牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙. 输入描述: 输入包含组数据 第一 ...

  2. BZOJ 3119 Book (贪心+数学推导)

    BZOJ 3119 Book (贪心+数学推导) 手动博客搬家: 本文发表于20191029 22:49:41, 原地址https://blog.csdn.net/suncongbo/article/ ...

  3. 洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学

    洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学 1.我们可以发现最终的答案 = max( 上山时间总和 + 最快下山时间,下山时间总和 +最快上山时间 ) ...

  4. dota攻略(dota全部英雄装备合成和英雄打法)

    收集整理到行业知识网关于dota全部英雄装备合成和英雄打法的所有攻略,希望给菜鸟一些提示和帮助 dota召唤师装备攻略  dota黑暗贤者装备攻略  dota不朽尸王装备攻略  dota深渊领主装备攻 ...

  5. 1739 - 放置盒子 - 模拟 - 贪心 - 数学

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 文章目录 题目描述 题目描述 题目剖析&信息挖掘 解题思路 方法一 模拟+贪心+数学 分析 思路 注意 知识点 复杂度 ...

  6. 从装备合成谈树状结构的应用

    源码下载: 链接: https://pan.baidu.com/s/1DucpIik596W1pkY09FjUew 提取码: n8mq 其中有个文件"类的功能介绍.txt",介绍了 ...

  7. 设计模式7:开源, 游戏装备合成

    一个仿王者荣耀的装备合成系统,运行效果: 最关键的是这两个数组: public static int conditionAr[][]=new int[][]{         {80,-1,-1,-1 ...

  8. BZOJ3443: 装备合成

    可以发现,装备的合成是一个树形结构 对于一次合成,新建一个点表示这两个装备合成后的装备,成为这两个装备的父亲(一定要新建因为要兹瓷询问某个装备被合成前的属性) 然后某个装备的某个属性就相当于问这个装备 ...

  9. BZOJ 3443: 装备合成

    orz噶爷 (就是那个叫wohenshuai的大佬) 好劲啊------. 每次装备合成新建一个点 连向两个子节点 可以知道每次询问就询问这个点的子树 每次合并每个点就跳到它合并的点 代表以后要询问这 ...

最新文章

  1. [原]OpenCV2.2无法打开摄像头或读取视频的解决方法
  2. 分享Kali Linux 2016.2第45周镜像
  3. JVM 垃圾收集器CMS相关参数
  4. boost::coroutine模块实现合并数组的测试程序
  5. 在ASP.NET Web Application 中如何处理图片 【转】-有用
  6. 系统学习深度学习(三十一)--Nature DQN(NIPS 2015)
  7. PLSQL连接本地的Oracle数据库
  8. 课程设计——企业网络项目搭建(上)
  9. Docker入门之安装与卸载
  10. vba正则表达式入门
  11. JavaScript介绍及视频教程
  12. 电脑计算机睡眠和休眠模式区别,Windows系统的睡眠模式和休眠模式以及待机模式的区别知识科普...
  13. 【贪玩巴斯】传感器与检测技术 (一)「金属传感器三大重要传感器——电感、电容与振弦式」2021-09-28
  14. 如何解决电脑桌面图标显示为空白文件?
  15. Redis 总结 —— 2022/2/6
  16. 网络嗅探与欺骗----函数sniff()、ARP的原理、ARP欺骗、AARP欺骗的中间人攻击
  17. 【lizhi125】FindDupFile - 轻松查找与清理电脑上的重复文件、照片的绿色软件
  18. IE打开网页时变成下载文件的解决办法
  19. 应用软件之xx文库破解器
  20. 基于matlab模拟心电信号,附赠代码

热门文章

  1. vue监听url地址栏参数变化
  2. 2.4G-WiFi连接路由器过程
  3. 中冠百年|短期理财和长期理财哪个好
  4. 软件评测师-7软件生存周期
  5. Python制作gif动图(PIL)
  6. 开源组件风险修复,升级版本就够了吗?
  7. python opencv图像剪裁
  8. linux mkdir 文件夹,Linux mkdir创建文件夹命令
  9. CSS3五颜六色的花纹图案动画js特效
  10. VoIP NGN IMS 3G 标准 规范 测试技术 资料集合