OpenJudge1551 Sumsets
来源:互联网 发布:游戏数据分析师收入 编辑:程序博客网 时间:2024/05/04 04:04
题目:http://noi.openjudge.cn/ch0305/1551/
分析:移向得:a+b=d-c;于是hash.
代码:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=1005,key=1000007,inf=2147483640;struct node{ int w,a,b,next;};node h[Tmax*Tmax];int n,data[Tmax],head[key],last,ans;int main(){ int i,j,p; while(scanf("%d",&n)==1&&n!=0) { for(i=1;i<=n;i++) scanf("%d",&data[i]); last=-1; ans=-inf; memset(head,0,sizeof(head)); for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(i==j) continue; h[++last].a=data[i]; h[last].b=data[j]; h[last].w=data[i]-data[j]; h[last].next=head[((data[i]-data[j])%key+key)%key]; head[((data[i]-data[j])%key+key)%key]=last; } for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { if(head[((data[i]+data[j])%key+key)%key]==0) continue; for(p=head[((data[i]+data[j])%key+key)%key];p;p=h[p].next) { if(h[p].w!=data[i]+data[j]) continue; if(h[p].a==data[i]||h[p].a==data[j]||h[p].b==data[i]||h[p].b==data[j]) continue; ans=max(ans,h[p].a); } } if(ans==-inf) printf("no solution\n"); else printf("%d\n",ans); } return 0;}
0 0
- OpenJudge1551 Sumsets
- Sumsets
- Sumsets
- Sumsets
- Sumsets
- Sumsets
- Sumsets
- 10125 - Sumsets(*****)
- 10125 - Sumsets
- uva10125 - Sumsets
- uva10125 Sumsets
- HDU2709 Sumsets
- 10125 - Sumsets
- POJ_2229 Sumsets
- poj2229 Sumsets
- poj2229 Sumsets
- POJ2229 Sumsets
- POJ2229 Sumsets
- 控制器跳转
- outline属性的设置和作用简述
- Python 3 爬虫之查询Github上哪些用户名没有被注册
- HDU 1532 Drainage Ditches(Dinic)
- Requests高级用法
- OpenJudge1551 Sumsets
- HTML中的base标签使用详解
- eclipse使用介绍
- Spring3 MVC详解一
- 创建透明表
- 更换图片
- 【VB.NET】三层登陆实例
- android签名机制
- UML第一集