POJ 2549
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 8235 | Accepted: 2260 |
Description

Input
Output
Sample Input
- 5
- 2
- 3
- 5
- 7
- 12
- 5
- 2
- 16
- 64
- 256
- 1024
- 0
Sample Output
- 12
- no solution
Source
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- struct node { int v,a,b; };
- const int MAX = ;
- int N,len = ;
- int ele[MAX];
- node y[MAX * MAX];
- bool cmp(node a,node b) { return a.v < b.v; }
- bool solve() {
- for(int i = N - ; i >= ; --i) {
- for(int j = N - ; j >= ; --j) {
- if(i == j) continue;
- int d = ele[i] - ele[j];
- // printf("ele = %d d = %d\n",ele[i],d);
- int l = ,r = len - ;
- while(l < r) {
- int mid = (l + r + ) >> ;
- if(y[mid].v > d) r = mid - ;
- else l = mid;
- }
- if(y[l].v == d) {
- for(int k = l; k < len; ++k) {
- if(y[k].v == d && y[k].a != ele[j] && y[k].b != ele[j]
- && y[k].a != ele[i] && y[k].b != ele[i]) {
- printf("%d\n",ele[i]);
- return true;
- }
- }
- for(int k = l; k >= ; --k) {
- if(y[k].v == d && y[k].a != ele[j] && y[k].b != ele[j]
- && y[k].a != ele[i] && y[k].b != ele[i]) {
- printf("%d\n",ele[i]);
- return true;
- }
- }
- }
- }
- }
- return false;
- }
- int main()
- {
- // freopen("sw.in","r",stdin);
- while(~scanf("%d",&N) && N ) {
- for(int i = ; i < N; ++i) scanf("%d",&ele[i]);
- sort(ele,ele + N);
- N = unique(ele,ele + N) - ele;
- len = ;
- for(int i = ; i < N; ++i) {
- for(int j = i + ; j < N; ++j) {
- y[len].v = ele[i] + ele[j];
- y[len].a = ele[i];
- y[len++].b = ele[j];
- }
- }
- sort(y,y + len,cmp);
- if(!solve()) printf("no solution\n");
- }
- return ;
- }
POJ 2549的更多相关文章
- POJ 2549:Subsets(哈希表)
[题目链接] http://poj.org/problem?id=2549 [题目大意] 给出一个数集,从中选择四个元素,使得a+b+c=d,最小化d [题解] 我们对a+b建立Hash_table, ...
- UVA 10125 - Sumsets(POJ 2549) hash
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- POJ 2549 二分+HASH
题目链接:http://poj.org/problem?id=2002 题意:给定一个n个数字组成的序列,然后求出4个数使得a+b+c=d,求d的最大值.其中a,b,c,d要求是给定序列的数,并且不能 ...
- Divide and conquer:Sumsets(POJ 2549)
数集 题目大意:给定一些数的集合,要你求出集合中满足a+b+c=d的最大的d(每个数只能用一次) 这题有两种解法, 第一种就是对分,把a+b的和先求出来,然后再枚举d-c,枚举的时候输入按照降序搜索就 ...
- POJ 2549 Sumsets hash值及下标
题目大意:找到几何中的4个数字使他们能够组成 a+b+c=d , 得到最大的d值 我们很容易想到a+b = d-c 那么将所有a+b的值存入hash表中,然后查找能否在表中找到这样的d-c的值即可 因 ...
- POJ 2549 Sumsets
Sumsets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10593 Accepted: 2890 Descript ...
- POJ 2549 Sumsets(折半枚举+二分)
Sumsets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11946 Accepted: 3299 Descript ...
- [poj] 2549 Sumsets || 双向bfs
原题 在集合里找到a+b+c=d的最大的d. 显然枚举a,b,c不行,所以将式子移项为a+b=d-c,然后双向bfs,meet int the middle. #include<cstdio&g ...
- ProgrammingContestChallengeBook
POJ 1852 Ants POJ 2386 Lake Counting POJ 1979 Red and Black AOJ 0118 Property Distribution AOJ 0333 ...
随机推荐
- rails中ActionController::InvalidAuthenticityToken解决办法
Ror代码 class FooController < ApplicationController protect_from_forgery :except => :index # you ...
- WPF中多窗口共享静态属性
由于我的DoubanFm在重新考虑之后,需要设置一个全局的CurrentSong,这个字段要让所有的VM都知道,而我同时又想把它作为我所有VM的共有属性.而且我想尽量减少代码的复制,提高重用.所以我做 ...
- Iframe 自适应高度的方法!
第一种方法:代码简单,兼容性还可以,大家可以先测试下. function SetWinHeight(obj) { var win=obj; if (document.getElementById) { ...
- java中的排序
排序是数据结构中重要的一个部分,也是在实际开发中最易遇到的问题之一,当然了,你也可以不考虑这些排序的算法,直接把要排序的数据insert到数据库中,用数据库的order by再select一下,也能产 ...
- Oracle Database Links解析
什么是Database Links呢? 首先我们阐述下它的作用:使用户可以通过一个数据库访问到另外一个远程数据库. 那么Database Link是存储着远程数据库的连接信息. 如下图所示: 用户Sc ...
- hdu 5265 pog loves szh II
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5265 pog loves szh II Description Pog and Szh are pla ...
- Hadoop之Hive UDAF TopN函数实现
public class GenericUDAFTopNRow extends AbstractGenericUDAFResolver { @Overridepublic GenericUDAFEva ...
- PHP调用WEBSERVICE接口常见问题答疑以及总结
最近的工作项目中,接触到了很多的政府 微信开发项目.对方的外包公司都是使用JAVA作为开发语言,然后通过WEBSERVICE进行接口返回数据到我的项目中.一般情况下,能在浏览器打开并显示数据的接口是直 ...
- 关于1>LINK : fatal error LNK1168: 无法打开 ....exe或者....dll进行写入的问题
我们用VS编译器运行我们的程序时候,可能会出现关于1>LINK : fatal error LNK1168: 无法打开 ...dll 进行写入或者是1>LINK : fatal err ...
- 四则运算出题器(C++)-BUG修复
定制题目数量这个功能测试: (1)输入题目数为负数时: 可正确处理: (2)输入题目数量为0时: 可正确处理: (3)输入题目数量为小数时: 程序运行出错: 错误分析: 因为代码中题目数量的变量Que ...