poj2549
来源:互联网 发布:淘宝有访客无询单 编辑:程序博客网 时间:2024/06/05 10:26
今天好心塞!!!先是
//TLE了 0.0#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<map>using namespace std;long long a[1010];int main(){ int n; //freopen("2549.txt","r",stdin); while(~scanf("%d",&n)) { if(n==0)break; map<long long,long long> sum; for(int i=0;i<n;i++) { scanf("%lld",&a[i]); } sort(a,a+n); for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { sum[a[i]+a[j]]=a[i]; } } long long result=-10000000000; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { map<long long,long long>::iterator ite=sum.find(a[j]-a[i]); if(ite!=sum.end()) { if((ite->first-ite->second!=a[i])&&(ite->first-ite->second!=a[j])&&(ite->second!=a[i])&&(ite->second!=a[j])) result=max(result,a[j]); } ite=sum.find(a[i]-a[j]); if(ite!=sum.end()) { if((ite->first-ite->second!=a[i])&&(ite->first-ite->second!=a[j])&&(ite->second!=a[i])&&(ite->second!=a[j])) result=max(result,a[i]); } } } if(result==-10000000000)printf("no solution\n"); else printf("%lld\n",result); }}
后是各种TLE,编译错误。。。。。。。。。。最后还必须靠别人的代码来AC啊!!!!!
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<map>#include<vector>using namespace std;long long a[1010];struct node{ long long v; int i, j; node(long long v, int i, int j) : v(v), i(i), j(j){} bool operator < (const node& other) const { return v < other.v; } bool operator > (const node& other) const { return v > other.v; } bool operator != (const node& other) const { return i != other.i && j != other.j && i != other.j && j != other.i; }};bool cmp(node m,node n){ return m.v<n.v;}int main(){ int n; //freopen("2549.txt","r",stdin); while(~scanf("%d",&n)) { if(n==0)break; vector<node>sum; vector<node>sum2; for(int i=0;i<n;i++) { scanf("%lld",&a[i]); } sort(a,a+n); for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { //dan.v=a[i]+a[j]; //dan.from=i; //dan.to=j; sum.push_back(node(a[i]+a[j],i,j)); //sum2[a[i]-a[j]]=a[j]; //sum2[a[j]-a[i]]=a[i]; //dan.v=a[i]-a[j]; //dan.from=i; //dan.to=j; //node(a[i]-a[j],i,j); sum2.push_back(node(a[i]-a[j],i,j)); //dan.v=a[j]-a[i]; //dan.from=j; //dan.to=i; //node(a[j]-a[i],j,i); sum2.push_back(node(a[j]-a[i],j,i)); } } long long result=-536870912; sort(sum.begin(),sum.end(),greater<node>()); sort(sum2.begin(),sum2.end()); vector<node>::iterator ite; for(ite=sum.begin();ite!=sum.end();ite++) { vector<node>::iterator lb=lower_bound(sum2.begin(),sum2.end(),*ite); vector<node>::iterator ub=upper_bound(lb,sum2.end(),*ite); /*for(;lb!=ub;lb++) { if(lb->v==ite->v) { if((ite->i!=lb->j)&&(ite->j!=lb->j)) result=max(result,a[lb->i]); } }*/ for (; lb != ub; ++lb) { if (*lb != *ite) { result = max(result, ite->v + a[lb->j]); } } } if(result==-536870912)printf("no solution\n"); else printf("%lld\n",result); }}
0 0
- poj2549
- poj2549
- poj2549
- poj2549 Sumsets
- POJ2549-Sumsets
- POJ2549-Sumsets
- POJ2549-Sumsets
- poj2549——Sumsets
- poj2549 枚举+二分
- POJ2549 Sumsets 折半枚举
- poj2549 Sumsets(折半枚举)
- poj2549折半枚举
- POJ2549-Sumsets【折半搜索】
- poj2549(折半枚举)
- poj2549 Sumsets双向搜索
- poj2549 3sum/二分查找
- 折半枚举+3SUM--poj2549
- POJ2549【hash分离链接法】
- 李白喝酒问题
- Android开发——Intent(2)
- 黑马程序员——C语言基础篇---指针
- 自定义封装简单的基于FMDB以及数据model的数据库操作
- mongoDB笔记2-shell Database对象
- poj2549
- Linux集群Hadoop2.5.1完全分布式安装
- 趣味CRACKME破解分析(发散思维)
- 网络之协议
- Android 开源框架Universal-Image-Loader完全解析(三)---可以防止图片错乱
- linux中sparce与__be32
- java学习入门
- [CS231n@Stanford] Assignment1-Q1
- JAVA学习笔记<基础篇>