nowcoder---常州大学新生寒假训练会试----F 大佬的生日礼包(二分)
链接:https://www.nowcoder.net/acm/contest/78/F
时间限制:C/C++ 1秒,其他语言2秒
64bit IO Format: %lld
题目描述
豪华礼包:一个U盘、一个鼠标和一个机械键盘。
幸运礼包:一个U盘、两个鼠标。
普通礼包:两个U盘、一个鼠标。
输入描述:
输入第一行包含一个正整数T。
接下来T行每行包含3个正整数a, b, c,依次表示U盘、鼠标和机械键盘各有多少个。
输出描述:
输出T行,每行一个整数,表示最多能发出多少份礼包。
输入例子:
2
4 4 0
1 1 1
输出例子:
2
1
-->
输入
2
4 4 0
1 1 1
输出
2
1
备注:
T<=100000
0<=a,b,c<=1000000
////////////////////////////////////////////////////
二分答案,a、b、c够不够组成达到这个答案的长度呢
当前验证答案为mid
观察到每一份礼包都有至少一个a一个b,先给这些每一个分一个a一个b
那么剩下的a、b、c 分给每个位置一个什么东西就决定了这个位置属于什么礼包
问题就变成了剩下的abc能不能构成长度为mid,相邻不同的一个序列
当剩余的abc中某个为负数那肯定这个答案是不行了
能不能组成,假如我们给abc排个序使得a<=b<=c的话,假如a+b>=c那么能组成的最长长度为a+b+c(自己画个图)
如果a+b<c,那么能组成的最长度就是(2*(a+b))+1(有剩余可以加到末尾)
我们当然可以通过这种方式计算出最长的长度然后来判断
此外,对于答案mid,能不能达到,就看abc中最小两个相加能不能>=mid/2
/////////////////////////////////////
贴代码
#include <bits/stdc++.h>
#define mst(a,b) memset((a),(b), sizeof a)
#define lowbit(a) ((a)&(-a))
#define IOS ios::sync_with_stdio(0);cin.tie(0);
using namespace std;
typedef long long ll;
const int mod=1e9+;
const int maxn=1e5+;
int main(){
#ifdef local
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
#endif
int t;scanf("%d",&t);
while(t--){
int a,b,c;scanf("%d%d%d",&a,&b,&c);
int ans=,l=,r=3e6;
while(l<=r){
int mid=(l+r)>>;
int aa=a-mid,bb=b-mid,cc=c;
if(aa>=&&bb>=&&(aa+bb+cc)>=mid&&
(aa+bb)>=(mid>>)&&(aa+cc)>=(mid>>)&&(bb+cc)>=(mid>>)){
ans=mid;l=mid+;
}else r=mid-;
}
printf("%d\n",ans);
}
return ;
}
nowcoder---常州大学新生寒假训练会试----F 大佬的生日礼包(二分)的更多相关文章
- 常州大学新生寒假训练会试 I 合成反应
题目描述 有机合成是指从较简单的化合物或单质经化学反应合成有机物的过程. 有时也包括从复杂原料降解为较简单化合物的过程. 由于有机化合物的各种特点,尤其是碳与碳之间以共价键相连,有机合成比较困难,常常 ...
- 给未来的你——李开复2011级大学新生演讲
2011年09月26日08:30 来源:<中国青年报> <中国青年报>的读者朋友们: 你们肩负着中华的未来,你们身上正涌动着创新的血脉! 无论你在哪所学校,哪个城市,你都是与众 ...
- C 上楼梯 中国石油大学新生训练赛#11
问题 C: 上楼梯 时间限制: 1 Sec 内存限制: 128 MB提交 状态 题目描述 明明上n 级台阶可用四种步幅, 当然每种步幅花费的体力也不一样, 对应关系如下明明开始有m 个体力, 求他最 ...
- I 安装饮水机 中国石油大学新生训练赛#10
问题 I: 安装饮水机 时间限制: 1 Sec 内存限制: 128 MB提交 状态 题目描述 为倡导城市低碳生活,市文明办计划举办马拉松比赛,为确保比赛安全,沿途设置了一些观察点.每个观察点派一个观 ...
- HMS Core安全检测服务如何帮助大学新生防范电信诈骗?
一年一度的高考结束了,很多学生即将离开父母,一个人踏入大学生活,但由于人生阅历较少,容易被不法分子盯上. 每年开学季也是大一新生遭受诈骗的高峰期,以下是一些常见的案例.有的骗子会让新生下载注册一些恶意 ...
- SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告
题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音? ...
- 2016huasacm暑假集训训练五 F - Monkey Banana Problem
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/F 题意:求至上而下一条路径的所经过的值得和最大值,这题比赛时就出了 但当时看不懂题 ...
- 2016huasacm暑假集训训练三 F - Jungle Roads
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/F 题意:在相通n个岛屿的所有桥都坏了,要重修,重修每一个桥所用的时间不同,求重修使 ...
- 寒假训练第九场 Brocard Point of a Triangle
题意:求布洛卡点坐标 思路:直接利用布洛卡点的性质.http://pan.baidu.com/s/1eQiP76E #include<cstdio> #include<cstring ...
随机推荐
- javaweb:关于HttpServletRequest介绍 (转)
出处:https://www.cnblogs.com/xdp-gacl/p/3798347.html 一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的 ...
- php Excel 导入
php Excel 导入 public function storeSql() { $file = input('file.excel'); $path = ROOT_PATH . 'public' ...
- sql server 对数运算函数log(x)和log10(x)
--LOG(x)返回x的自然对数,x相对于基数e的对数 --LOG10(x)返回x的基数为10的对数 示例:select LOG(3),LOG(6),LOG10(1),LOG10(100),LOG10 ...
- npm学习(五)之使用package.json
使用package.json 管理本地安装的npm包的最佳方法是创建一个package.json文件. 一个packagejson文件: 列出项目所依赖的包. 允许使用语义版本控制规则指定项目可以使用 ...
- 使用 supervisor 管理 Celery 服务
使用 supervisor 管理 Celery 服务 Celery 后台运行 如果我们想让celery worker运行在后台而不是终端上,在后台以守护进程的方式运行,我们可以使用supervisor ...
- 2019-11-29-Roslyn-打包自定义的文件到-NuGet-包
title author date CreateTime categories Roslyn 打包自定义的文件到 NuGet 包 lindexi 2019-11-29 08:23:21 +0800 2 ...
- Linux使echo命令输出结果带颜色
echo -e "\033[30m 黑色字 \033[0m"echo -e "\033[31m 红色字 \033[0m"echo -e "\033[3 ...
- Vue项目使用域名访问配置
1. 编辑C:\Windows\System32\drivers\etc文件夹中的hosts文件,在末尾添加127.0.0.1 www.local.com(你的自定义域名) 注意:如果该文件夹没有ho ...
- html中全选反选
<!--第一层--> <div class="first"> <div class="first_top"> <img ...
- thinkphp类型转换
类型转换 说白了就是在model类中声明的字段输出类型:其语法如下: 注意strtotime()函数可以将诸如‘2018-12-21’这样的日期字符串转为整数存入数据库 自动完成---等于提前对某一表 ...