装备合成

链接:

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

题目描述

牛牛有{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行每行两个整数x,y
输出描述:
每组数据输出一行一个整数表示答案。
示例1
输入
复制

5
4 8
7 6
8 10
100 4555
45465 24124

输出
复制

2
2
3
50
13917

备注:
1<=t<=10000
1<=x,y<=1e9

题解:

两个做法一个三分,一个贪心

三分的做法


我们都知道 二分查找 适用于单调函数中逼近求解某点的值。
如果遇到凸性或凹形函数时,可以用三分查找求那个凸点或凹点。
假设A装备做了m件,B装备做了n件,我们固定m来求n
n=min( (x-2m)/4 , y-3m )就是看做完m剩下的材料,还能做多少个n,然后返回n+m,不断三分求出n+m的峰值,即最大值

代码:

#include<bits/stdc++.h>
using namespace std;
int x,y;
int check(int n){return n+min((x-2*n)/4,y-3*n);
}
int main(){int T;scanf("%d",&T);while(T--){cin>>x>>y;int l=0;int r=min(x/2,y/3);//目前 的x和y最多能做多少个m while(l<r){int mid1=l+(r-l)/3; int mid2=r-(r-l)/3;if(check(mid1)>check(mid2))r=mid2-1;else l=mid1+1;}printf("%d\n",check(l));}return 0;
}

贪心的做法:

1.材料a特别多时,尽量用a来合成装备2,满足a>4b,b为多少就可以做多少件
2材料b特别多时,尽量用b来合成装备1,要满足3
a<2*b,a为多少,就可以做a/2件
3.当两者差不多时,我们结合题目中两个式子:2a+3b=1,4a+b=1,我们可以得到a=1/5,b=1/5,也就是合成一件装备a+b必须是5的倍数,而且观察式子,a还必须是偶数。
所以如果a不是偶数,或者(a+b)不是5的倍数,结果就要减一
(相当于去除多余的材料,构成a为偶数,a+b为5倍数的情况)

代码:

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t;
ll a,b;
int main() {cin>>t;while(t--) {cin>>a>>b;if(a>(b<<2)) printf("%lld\n",b);else if(a*3<(b<<1)) printf("%lld\n",(a>>1));else {ll sum=(a+b)/5;if(a&1&&(a+b)%5==0) --sum;printf("%lld\n",sum);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P4161-[SCOI2009]游戏【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P4161 题目大意 一个1∼n1\sim n1∼n的排列&#xff0c;f(x)f(x)f(x)表示在置换xxx下置换多少次才能回到原来的排列&#xff0c;求在所有置换下f(x)f(x)f(x)的所有可能的值的数量。 解题思路 一个置换的fff值就是这个置换的…

【spfa】假期计划(jzoj 3936)

假期计划 jzoj 3936 题目大意 给你一个有向图&#xff08;n,m⩽20000n,m\leqslant 20000n,m⩽20000&#xff09;&#xff0c;现在有一些作为枢纽的点&#xff0c;且保证每一条边的两个点至少有一个是枢纽点&#xff0c;现在给q个询问&#xff0c;问某一个点到另一个点的最短…

CF650E Clockwork Bomb(树上构造类问题、并查集)

Description 给出两棵 n 结点的有标号树。 每次操作删去第一棵树的一条边&#xff0c;再加上一条边&#xff0c;需要保证此时还是一棵树。 构造一种操作序列&#xff0c;将第一棵树变成第二棵树&#xff0c;使得操作数最小。 n ≤ 51055 \times 10^55105 Solution 显然&…

微软必应从.NET Core 2.1获得了性能提升

据微软工程师Mukul Sabharwal介绍&#xff0c;在将微软搜索引擎必应迁移到.NET Core 2.1之后&#xff0c;内部服务延迟降低了34%&#xff0c;这主要归功于.NET社区贡献的改进。按照Sabharwal的说法&#xff0c;.NET Core的多项改进贡献了大部分的性能提升&#xff0c;包括字符串…

阶乘

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 给定一个正整数 p 求一个最小的正整数 n&#xff0c;使得 n! 是 p 的倍数 输入描述: 第一行输入一个正整数…

P2151-[SDOI2009]HH去散步【矩阵乘法】

正题 题目链接:https://www.luogu.com.cn/problem/P2151 题目大意 nnn个点mmm条边的一张无向图&#xff0c;走过一条边后下一次就不能再走这条&#xff0c;求AAA到BBB之间有多少长度为ttt的路径。 解题思路 因为有不能再走同一条的限制&#xff0c;所以不能直接裸上矩乘&…

IQ测试(jzoj 5048)

IQ测试 jzoj 5048 题目大意 给出一个序列a&#xff0c;然后有m个询问&#xff0c;每个询问给出一个序列&#xff0c;问这个序列是否可以由序列a删掉一些数得到的 输入样例 7 1 5 4 5 7 8 6 4 5 1 5 5 8 6 3 2 2 2 3 5 7 8 4 1 5 7 4输出样例 TAK NIE TAK NIE数据范围 对…

CF1088F Ehab and a weird weight formula(树上最优性问题、贪心+倍增)

Description 给出一棵 n 个结点的树&#xff0c;点 i 有正权值 wiw_iwi​&#xff0c;wiw_iwi​ 互不相同。 除了权值最小的点&#xff0c;保证每个点 u 都有一个邻点 v 使得 wvw_vwv​ < wuw_uwu​。 构造一棵树&#xff0c;最小化代价&#xff1a; 对于每个点 u&#xf…

搭建基于云端的中间层以支持跨平台的智能视觉服务

不断演进的应用场景初级应用场景—宅在家里场景&#xff1a;Bob同学有一天在网上看到了一张建筑物的图片&#xff0c;大发感慨&#xff1a;"好漂亮啊&#xff01;这是哪里&#xff1f;我要去亲眼看看&#xff01;"Bob同学不想问别人&#xff0c;可笑的自尊心让他觉得…

YbtOJ#20235-[冲刺NOIP2020模拟赛Day9]公共序列【dp】

正题 题目链接:https://www.ybtoj.com.cn/contest/66/problem/3 题目大意 给出两个字符串A,BA,BA,B&#xff0c;求它们的最长公共子序列。 解题思路 先考虑朴素的dpdpdp&#xff0c;设fi,jf_{i,j}fi,j​表示到AAA的第iii个&#xff0c;BBB的第jjj个时候的最长公共子序列长度…

牛客算法周周练4 题解

比赛链接 文章目录A [SDOI2016]齿轮B Rinne Loves XorC 阶乘D 小石的签到题E 装备合成A [SDOI2016]齿轮 B Rinne Loves Xor C 阶乘 两个方法 题解 D 小石的签到题 题解 E 装备合成 两个方法 题解

纪中B组模拟赛总结(2020.2.22)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3333lyflyflyf160160160100100100101010505050 总结 T1想到DP&#xff0c;但一开始想到的方法会TLE&#xff0c;后来想到可以减去一层&#xff0c;就A了 T2瞎想了一波&#xff0c;打了一个类似于FloyedFloyedFl…

高等数学超入门学习笔记

极限 百度百科 1.数列极限 百度百科 1.1 数列 1.2 数列极限 1.3 单调收敛原理 {xn}\{x_n\}{xn​}单调递增且{xn}\{x_n\}{xn​}有上界&#xff08;可以找到实数M使{xn}\{x_n\}{xn​}中任意一项小于M&#xff09;&#xff0c;{xn}\{x_n\}{xn​}收敛&#xff08;存在象限a&…

Microsoft宣布正式发布Linux on ASE

Microsoft宣布正式发布&#xff08;GA&#xff09;用于ASE&#xff08;应用服务环境&#xff0c;App Service Environment&#xff09;的Linux。该服务使客户可结合使用Linux上的应用服务&#xff08;App Service&#xff09;特性与ASE。在正式发布版之前&#xff0c;Microsoft…

YbtOJ#20236-[冲刺NOIP2020模拟赛Day9]红点蓝点【线段树,堆】

正题 题目链接:https://www.ybtoj.com.cn/contest/66/problem/4 题目大意 平面上nnn个红点&#xff0c;nnn个蓝点&#xff0c;对于没一个红点求一个与它纵坐标距离不超过ddd的一个点与它的曼哈顿距离最短。 解题思路 一个点分为两种情况&#xff0c;在询问点左边的红点要求横…

Rinne Loves Xor

链接&#xff1a; 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 输入描述: 第一行一个整数 N&#xff0c;表示数组 A 和 B 的长度。 第二行 N …

小麦亩产一千八(jzoj 3461)

小麦亩产一千八 jzoj 3461 题目大意 给你一个正整数序列&#xff1a;a0,a1,a2a_0,a_1,a_2a0​,a1​,a2​…… a0a_0a0​为1 a1a_1a1​为p axax−1ax−2(x>1)a_xa_{x-1} a_{x-2}(x>1)ax​ax−1​ax−2​(x>1) 现在给你三个数x&#xff0c;ax&#xff0c;yx&#xf…

Pipelines - .NET中的新IO API指引(一)

原文&#xff1a;https://blog.marcgravell.com/2018/07/pipe-dreams-part-1.html作者&#xff1a;marcgravell大约两年前&#xff0c;我发表了一篇关于.NET中即将到来的体验性新IO API的博文——在那时它被叫做"Channels"&#xff1b;在2018年的五月末&#xff0c;它…

[XSY] 分割(dfs树)

分割 题目相当于问 删掉两个点后 图是否仍然连通 割点问题&#xff0c;考虑用dfs树解决 设删去点u&#xff0c;v&#xff08;dfn[v]<dfn[u]&#xff09; 把 u, v 删去之后整棵树大概断成了几个部分&#xff1a; • v 上面到根的部分&#xff0c;以及上面挂着的那些东西&…

P4068-[SDOI2016]数字配对【二分,费用流】

正题 题目链接:https://www.luogu.com.cn/problem/P4068 题目大意 nnn种数字&#xff0c;第iii个是aia_iai​&#xff0c;有bib_ibi​个&#xff0c;价值为ci∗cjc_i*c_jci​∗cj​ 如果一个数字axa_xax​和aya_yay​配对要求axay\frac{a_x}{a_y}ay​ax​​是一个质数且产生c…