计蒜客 联想专卖店大促销
2016-07-10 21:39
302 查看
链接:https://nanti.jisuanke.com/t/11214
题意:中文题。
分析:对于三种类型,它们的公共点都是一个U盘和一个鼠标,除此之外类型a只需要一个机械键盘,类型b一个鼠标,类型c一个U盘。那么我们直接二分能凑出的最多满足条件的套餐即可。
代码:
#include<map> #include<set> #include<cmath> #include<queue> #include<bitset> #include<math.h> #include<vector> #include<string> #include<stdio.h> #include<cstring> #include<iostream> #include<algorithm> #pragma comment(linker, "/STACK:102400000,102400000") using namespace std; const int N=200010; const int MAX=1000000100; const int mod=100000000; const int MOD1=1000000007; const int MOD2=1000000009; const double EPS=0.00000001; typedef long long ll; const ll MOD=1000000007; const int INF=1000000010; const double pi=acos(-1.0); typedef double db; typedef unsigned long long ull; int d[5]; int pd(int a,int b,int c,int g) { int i,k=0; d[++k]=min(c,g); d[++k]=min(a-g,g); d[++k]=min(b-g,g); sort(d+1,d+k+1); return d[1]+d[2]+min(d[1]+d[2]+1,d[3])>=g; } int main() { int a,b,c,t; scanf("%d", &t); while (t--) { scanf("%d%d%d", &a, &b, &c); int l=-1,r=b+1,mid=(l+r)>>1; while (l+1<r) if (pd(a,b,c,mid)) { l=mid;mid=(l+r)>>1; } else { r=mid;mid=(l+r)>>1; } printf("%d\n", l); } return 0; }
相关文章推荐
- 方便查看篇---内存
- Mention
- 【Python学习笔记】函数式编程:装饰器
- Python 模块 & 作用域
- codeforces 2A-Winner (map)
- Helvetic Coding Contest 2016 online mirror C1
- Spring (三)配置文件详解
- html+js+cgi
- 泛型的典型应用:人的信息类和接口
- Java 之多线程同步
- 方便回顾篇进程
- 最小点覆盖 hdu--1054
- 最小点覆盖 hdu--1054
- 图片相似度比较--算法
- css
- android.os.NetworkOnMainThreadException 异常处理
- 存储过程使用DDL语句
- 算法导论(3) 快速排序、计数排序、基数排序
- Android开源项目 工具库
- Python 函数式编程--偏函数