ZOJ 1101 Gamblers 二分
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=101
让你在一堆互不相同的数中查找是否有a=b+c+d,若有不同的解,则输出最大的。
思路:
排序后二分,从大到小枚举。设sum=a[index]-a[i]-a[j],然后查找sum是否在数组中存在即可。
二分要写对,然后i==j || index==j || index==i等于的情况要去除。
还有用goto从内重循环直接跳出,而不是用个标记一次次判断,简洁而优雅。
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=1024;
int a[MAXN];
int n;
int search(int target)
{
int L=0,R=n-1;
while(L<R)
{
int mid=((L+R)>>1);
if(a[mid]==target)
return mid;
else if(a[mid] < target)
L=mid+1;
else
R=mid;
}
return -1;
} int main()
{ while(~scanf("%d",&n),n)
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]); sort(a,a+n);
int index;
for(index=n-1;index>=0;index--)
{ for(int i=0;i<n;i++)
{
if( i == index ) continue;
for(int j=0;j<n;j++)
{
if(i==j ||j==index)
continue; int sum=a[index]-a[i]-a[j]; int id=search(sum); if(id!=-1 && id!=i && id !=j && id != index)
{
printf("%d\n",a[index]);
goto end;
}
}
} }
printf("no solution\n");
end:; } return 0;
}
ZOJ 1101 Gamblers 二分的更多相关文章
- ZOJ 1101 Gamblers
原题链接 题目大意:一群人聚众赌博.每个人先分别押注不同的金额,可以相互借钱.开奖之后,如果某个人的押注的金额正好等于任何其他三个人金额总和,那这个人就赢得其他三个人的赌注.如果同时有两个以上的赢家, ...
- ZOJ 3156 Taxi (二分 + 二分匹配)
题意:给定 n 个人坐标, m 辆车的坐标,还有人的速度,要求每个人要进一辆不同的车,问你所有都进车的最短时间是多少. 析:首先二分时间 mid,很明显就是最后那个人进车的时间,然后如果把第 i 个人 ...
- A - Alice's Print Service ZOJ - 3726 (二分)
Alice is providing print service, while the pricing doesn't seem to be reasonable, so people using h ...
- ZOJ 3496 Assignment | 二分+有上下界网络流
题目: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3496 大概意思:给你一个网络,有源汇,在保证最大流的情况下求下面两 ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- ZOJ3068(01分数规划)
本是POJ2976,喜闻乐见的01规划入门题.POJ日常假死,到ZOJ测. 二分答案. 试了试数据好像没问题,\(a_i\)总是小于\(b_i\)且最终预答案l都小于1.然而为什么我把r设成1e10往 ...
- POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups / HDU 1699 Jamie's Contact Groups / SCU 1996 Jamie's Contact Groups (二分,二分图匹配)
POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups ...
- POJ 2296 Map Labeler / ZOJ 2493 Map Labeler / HIT 2369 Map Labeler / UVAlive 2973 Map Labeler(2-sat 二分)
POJ 2296 Map Labeler / ZOJ 2493 Map Labeler / HIT 2369 Map Labeler / UVAlive 2973 Map Labeler(2-sat ...
随机推荐
- 【深入篇】Andorid中常用的控件及属性
TextView android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/al ...
- HDU——T 3746 Cyclic Nacklace
http://acm.hdu.edu.cn/showproblem.php?pid=3746 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- Oracle与MySQL的转化差异
1.nvl函数. Oracle 中 : nvl (join_count , 0) MySQL中:if(join_count is null,'0',join_count) ...
- iOS -读书笔记-网络请求
知道"3次握手"吗?突然想起这个词 什么是3次握手? TCP三次握手/四次挥手详解 这里是3次握手的详解 3次握手就是为了可靠的传送数据,TCP(什么是TCP呢?TCP就是一种可靠 ...
- 使用Cygwin在Windows上体验Linux的快感
前言 记得大学的时候就以前使用过Cygwin,可惜当时没有发现她的美,我相信如今大多数朋友可能会更加倾向于使用Git或者干脆直接使用虚拟机以及原生Unix. 只是对于刚进入Linux的世界新人来说,使 ...
- 【剑指Offer学习】【面试题49:把字符串转换成整数】
题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能.不能使用atoi或者其它相似的库函数. 题目解析 这看起来是非常easy的题目,实现基本功能 ,大部分人都能用10行之内的代码 ...
- 转:Java的一道面试题----静态变量初始化过程
public class Test{ private static Test tester = new Test(); //step 1 private static int count1; //st ...
- 10.查看npm安装信息和版本号
转自:http://www.runoob.com/nodejs/nodejs-express-framework.html 你可以使用以下命令来查看所有全局安装的模块: $ npm list -g ├ ...
- Android滚轮选择器实现
思路: 1.布局,整个控件的布局,事实上就是用代码取带xml来实现当前布局 2,能够滑动的(即滚轮).事实上是一个ScrollView 3.推断滑动状态的,有protected void onScro ...
- Objective-C - 类的静态常量
创建头文件(.h), 导出常量: // Constants.h FOUNDATION_EXPORT NSString *const MyFirstConstant; FOUNDATION_EXPORT ...