UVA - 10125 哈希
题意:求集合中最大的\(d\)使得\(a+b=d-c\)
学习一下哈希的姿势(原来所谓链地址法就是直接跑个图啊)
哈希真有趣,全靠xjb乱搞
就叫这套hash为xjb-fibonacci-lpy-hash algorithm吧!(什么鬼)
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#define rep(i,j,k) for(register int i=j;i<=k;i++)
#define rrep(i,j,k) for(register int i=j;i>=k;i--)
#define erep(i,u) for(register int i=head[u];~i;i=nxt[i])
#define iin(a) scanf("%d",&a)
#define lin(a) scanf("%lld",&a)
#define din(a) scanf("%lf",&a)
#define s0(a) scanf("%s",a)
#define s1(a) scanf("%s",a+1)
#define print(a) printf("%lld",(ll)a)
#define enter putchar('\n')
#define blank putchar(' ')
#define println(a) printf("%lld\n",(ll)a)
#define IOS ios::sync_with_stdio(0)
using namespace std;
const int maxn = 1e6+1e5;
const int oo = 0x3f3f3f3f;
const double eps = 1e-7;
typedef long long ll;
int nxt[maxn],head[maxn],id1[maxn],id2[maxn],tot;
int a[1003];
const int xjb=(1<<2)+(1<<5)+(1<<7)+(1<<12)+(1<<19);
const int xjbb=(1<<1)+(1<<3)+(1<<4)+(1<<6)+(1<<15)+(1<<17);
inline int Hash(unsigned int x){
return (((x&xjb)+(x|xjb))^xjbb)&((1<<20)-1);
}
void init(){
memset(head,-1,sizeof head);
tot=0;
}
void add(int i,int j){
int val=Hash(a[i]+a[j]);
id1[tot]=i;id2[tot]=j;
nxt[tot]=head[val];
head[val]=tot++;
}
bool get(int ii,int jj,int cha){
int val=Hash(cha);
for(int i=head[val];~i;i=nxt[i]){
int x=id1[i],y=id2[i];
if(cha==a[x]+a[y]&&x!=ii&&y!=jj&&x!=jj&&y!=ii) return 1;
}
return 0;
}
int main(){
int n;
while(cin>>n){
if(n==0) break;
init();
rep(i,1,n) scanf("%d",&a[i]);
rep(i,1,n) rep(j,i+1,n) add(i,j);
int mx=-oo;
rep(i,1,n) rep(j,i+1,n){
int cha=a[i]-a[j];
if(get(i,j,cha)){
mx=max(a[i],mx);
}
int cha2=a[j]-a[i];
if(get(j,i,cha2)){
mx=max(a[j],mx);
}
}
if(mx==-oo) printf("no solution\n");
else println(mx);
}
return 0;
}
UVA - 10125 哈希的更多相关文章
- UVA 10125 - Sumsets(POJ 2549) hash
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- uva 10125 - Sumsets
题意: 输入n,然后输入n个数字,,要在这n个数字中找出a,b,c,d..满足a,b,c,d是不同元素,并且a + b + c = d...求出最大的d 直接暴力时间复杂度为O(n^4)..会超时.. ...
- 【HASH】【UVA 10125】 Sumset
传送门 Description 给定一个整数集合S,求一个最大的d,满足a+b+c=d,其中a,b,c,d∈S Input 多组数据,每组数据包括: 第一行一个整数n,代表元素个数 下面n行每行一个整 ...
- uva 10125 二分
https://vjudge.net/problem/UVA-10125 和之前做过的一道a+b+c=X的问题类似,不过这个要求多了a+b+c=d-->a+b=d-c 且abcd互不相等 我们 ...
- uva 1390 - Interconnect(期望+哈希+记忆化)
option=com_onlinejudge&Itemid=8&page=show_problem&category=514&problem=4136&mosm ...
- UVA 10651 Pebble Solitaire(bfs + 哈希判重(记忆化搜索?))
Problem A Pebble Solitaire Input: standard input Output: standard output Time Limit: 1 second Pebble ...
- UVA - 12338 Anti-Rhyme Pairs (哈希)
Description D Anti-Rhyme Pairs Input: Standard Input Output: Standard Output Often two words that rh ...
- UVA 11019 Matrix Matcher(哈希)
题意 给定一个 \(n\times m\) 的矩阵,在给定一个 \(x\times y\) 的小矩阵,求小矩阵在大矩阵中出现的次数. \(1 \leq n,m \leq 1000\) \(1\leq ...
- UVa 10118 免费糖果(记忆化搜索+哈希)
https://vjudge.net/problem/UVA-10118 题意: 桌上有4堆糖果,每堆有N颗.佳佳有一个最多可以装5颗糖的小篮子.他每次选择一堆糖果,把最顶上的一颗拿到篮子里.如果篮子 ...
随机推荐
- 数字图像处理实验(16):PROJECT 06-03,Color Image Enhancement by Histogram Processing 标签: 图像处理MATLAB 2017
实验要求: Objective: To know how to implement image enhancement for color images by histogram processing ...
- 对于 yii2 高级模板 生成文件入口
安装的 advanced 模板web下是没有index.php 方法: 在advanced 目录下有个init.bat 应用程序 双击即可如下 查看advanced 目录 (刷新)如下 已有:
- memset函数使用
函数原型 void *memset(void *s,int c,size_t n): 功能 将已开辟内存空间 s 的首 n 个字节的值设为值 c. 头文件 #include<memory.h& ...
- BZOJ3223 文艺平衡树(splay)
题目背景 这是一道经典的Splay模板题——文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...
- DELPHI XE5 UP2 运行IOS 遇到 Wrapper init failed: (null)问题的解决办法
一.问题表现: 在MAC OSX(10.9.2)上安装了比较新的XCODE5.1 和COMMAND LINE TOOLS 在DELPHI XE5 UP2上放了一个按钮,输出到MAC OSX上,出现: ...
- HTML5 Canvas游戏开发实战 PDF扫描版
HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读 ...
- 小程序上传多图片多附件多视频 c#后端
前言: 最近在研究微信小程序,本人自己是C#写后端的;感觉小程序挺好玩的,就自己研究了一下:刚好今天又给我需求,通过小程序上传多图 然后C#后端保存到服务器: 用NET明白 前端上传需要用到流,然后就 ...
- IE11下使用fixed定位时鼠标滚动不平滑
很久不用IE了,近期做兼容性测试发现一个fixed定位的问题,当元素使用fixed定位时,其应该不随页面滚动,在chrome/firefox/edge下都很完美,元素完全不动,但是使用IE11时,如果 ...
- strcmp返回值布尔类型的判断
strcmp: 用于比较两个字符串,原型如下: int strcmp ( char const *s1, char const *s2):如果s1小于s2,strcmp函数返回一个小于零的值.如果s1 ...
- kali linux之主动信息收集(二层发现)
主动信息收集: 直接与目标系统交互信息,无法避免留下访问的痕迹 使用受控的第三方电脑进行探测,如(使用代理或者使用肉鸡,做好被封杀的准备,使用噪声迷惑目标,淹没真实的探测流量) 识别活着的主机,会有潜 ...