链接:https://www.nowcoder.net/acm/contest/78/F

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

今天是某不愿透露姓名的谈姓大佬的生日,转发这场比赛到三个群就可以,获得以下三种礼包之一。

豪华礼包:一个U盘、一个鼠标和一个机械键盘。

幸运礼包:一个U盘、两个鼠标。

普通礼包:两个U盘、一个鼠标。

大佬一共准备了a个U盘、b个鼠标和c个机械键盘。为了给更多的人带来足够多的惊喜,大佬希望相邻的两位领礼包的参赛选手拿到的礼包类型都是不同的。
由于大佬正在宴请Final选手,并没有空打理这些,所以想让你告诉他 这些奖品最多可以发出多少份礼包。

输入描述:

输入第一行包含一个正整数T。
接下来T行每行包含3个正整数a, b, c,依次表示U盘、鼠标和机械键盘各有多少个。

输出描述:

输出T行,每行一个整数,表示最多能发出多少份礼包。

输入例子:
2
4 4 0
1 1 1
输出例子:
2
1

-->

示例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 大佬的生日礼包(二分)的更多相关文章

  1. 常州大学新生寒假训练会试 I 合成反应

    题目描述 有机合成是指从较简单的化合物或单质经化学反应合成有机物的过程. 有时也包括从复杂原料降解为较简单化合物的过程. 由于有机化合物的各种特点,尤其是碳与碳之间以共价键相连,有机合成比较困难,常常 ...

  2. 给未来的你——李开复2011级大学新生演讲

    2011年09月26日08:30 来源:<中国青年报> <中国青年报>的读者朋友们: 你们肩负着中华的未来,你们身上正涌动着创新的血脉! 无论你在哪所学校,哪个城市,你都是与众 ...

  3. C 上楼梯 中国石油大学新生训练赛#11

    问题 C: 上楼梯 时间限制: 1 Sec  内存限制: 128 MB提交 状态 题目描述 明明上n 级台阶可用四种步幅, 当然每种步幅花费的体力也不一样, 对应关系如下明明开始有m 个体力, 求他最 ...

  4. I 安装饮水机 中国石油大学新生训练赛#10

    问题 I: 安装饮水机 时间限制: 1 Sec  内存限制: 128 MB提交 状态 题目描述 为倡导城市低碳生活,市文明办计划举办马拉松比赛,为确保比赛安全,沿途设置了一些观察点.每个观察点派一个观 ...

  5. HMS Core安全检测服务如何帮助大学新生防范电信诈骗?

    一年一度的高考结束了,很多学生即将离开父母,一个人踏入大学生活,但由于人生阅历较少,容易被不法分子盯上. 每年开学季也是大一新生遭受诈骗的高峰期,以下是一些常见的案例.有的骗子会让新生下载注册一些恶意 ...

  6. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  7. 2016huasacm暑假集训训练五 F - Monkey Banana Problem

    题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/F 题意:求至上而下一条路径的所经过的值得和最大值,这题比赛时就出了 但当时看不懂题 ...

  8. 2016huasacm暑假集训训练三 F - Jungle Roads

    题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/F 题意:在相通n个岛屿的所有桥都坏了,要重修,重修每一个桥所用的时间不同,求重修使 ...

  9. 寒假训练第九场 Brocard Point of a Triangle

    题意:求布洛卡点坐标 思路:直接利用布洛卡点的性质.http://pan.baidu.com/s/1eQiP76E #include<cstdio> #include<cstring ...

随机推荐

  1. HDU-4332-Constructing Chimney

    题目描述 用\(1*1*2\)的砖头摆出如图所示的烟囱,可以横着摆也可以竖着摆,求摆出\(n\)层高的烟囱会有多少种不同的方案. Input 一共有\(T\)组数据. 每组数据包含一个\(n(1 \l ...

  2. Spring Boot缓存注解@Cacheable、@CacheEvict、@CachePut使用

    从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该 ...

  3. [转载]神经网络偏置项(bias)的设置及作用

    [转载]神经网络偏置项(bias)的设置及作用 原文来自:https://www.cnblogs.com/shuaishuaidefeizhu/p/6832541.html 1.什么是bias? 偏置 ...

  4. c# task笔记

    class Program { //创建Task任务的三种方式(无返回值) static void Main(string[] args) { //方法一 Task task1 = new Task( ...

  5. 初试 pyhton 简易采集

    一.安装软件(用eclispe 搭建好环境好,没有取省自动补全编写代码会很卡,最后选用sumblie) eclispe  用的windows 32 4.31 python  用的 4.3.3  下载地 ...

  6. [SCOI2016]幸运数字(线性基,倍增)

    [SCOI2016]幸运数字 题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作 ...

  7. FPDF_CHAR_INFO

    typedef struct { FX_WCHAR m_Unicode; FX_WCHAR m_Charcode; FX_INT32 m_Flag; FX_FLOAT m_FontSize; FX_F ...

  8. Java并发编程实战 第11章 性能与可伸缩性

    关于性能 性能的衡量标准有很多,如: 服务时间,等待时间用来衡量程序的"运行速度""多快". 吞吐量,生产量用于衡量程序的"处理能力",能够 ...

  9. json与string与map的理解

    json是一种特殊格式的string字符串,也就是json也是string类型,只是这种string是有格式的,那么他的格式就是类似map的格式[key:value] 举例子: Map map = r ...

  10. C# List 过滤,排序,删除

    taskList_IsManager.Where(p => p.IsManager == "1").ToList(); taskList = taskList.OrderBy ...