Sumsets UVA
来源:互联网 发布:信用社支票打印软件 编辑:程序博客网 时间:2024/06/03 10:59
题目链接:点击打开链接
题意:给出 n 个数字,找出其中四个使得形成 a+b+c=d 的形式,求出最大的 d ,若不存在,则输出 no solution ;
题解:
按正常方法四个循环可得出,但肯定超时,所以需要换其他方法,可以先求出d - c 的值,然后按照二分求出 a + b的值,进而得出结果;
#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstring>#include<iomanip>using namespace std;int main(){ int n; while(cin>>n&&n){ int a[1000+100]; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); int flag=0; for(int i=n-1;i>=0;i--){ for(int j=n-1;j>=0;j--){ int ans; if(i!=j) ans=a[i]-a[j]; int l=0,r=j-1; while(l<r){ if(a[l]+a[r]==ans){ flag=1; break; } else if(a[l]+a[r]>ans){ r--; } else l++; } if(flag) break; } if(flag){ cout<<a[i]<<endl; break; } } if(flag==0) cout<<"no solution"<<endl; } return 0;}
阅读全文
0 0
- Sumsets UVA
- UVa 10125 - Sumsets
- uva 10125 - Sumsets
- uva 10125 Sumsets
- UVa 10125 - Sumsets
- uva 10125 - Sumsets
- UVA 10125 Sumsets
- UVA 10125 - Sumsets
- UVa 10125-Sumsets
- UVa:10125 Sumsets
- uva 10125 Sumsets
- UVA 10125 Sumsets
- UVa 10125 - Sumsets
- UVA 10125 - Sumsets
- UVA - 10125 Sumsets
- UVA - 10125 Sumsets
- uva 10125 - Sumsets
- UVA 10125(p89)----Sumsets
- nginx学习
- HDU6143 Killer Names 【数学+组合】
- Caffe 源码添加多标签
- 说说equals() (中)
- java 利用TCP协议从客户端向服务器端发送文件.(网络编程)
- Sumsets UVA
- 1668: 高桥和低桥
- 大数据生态系统基础:Hadoop(三):Hadoop 3.0.0 HDFS 体系结构
- Android解决滑动冲突的方式
- Design road (三分)
- HDU 1716 排列2(全排列函数的应用)
- zcmu1668 高桥和低桥
- Oracle的约束
- Xen使用命令行创建虚拟机