uva 1152 4 Values whose Sum is 0(二分_中途相遇|| hash)
来源:互联网 发布:阿里云香港b区 编辑:程序博客网 时间:2024/04/26 04:03
hash
#include<cstdio>#include<iostream>#include<map>#include<vector>using namespace std;const int maxn=4005;int a[maxn],b[maxn],c[maxn],d[maxn];struct Hash_map{ static const int mask=0x7fffff; int p[8388608],q[8388608]; void clear() //初始化为0 { for(int i=0; i<=mask; ++i) q[i]=0; } int& operator [](int k) //重载“[]” { int i; for(i=k&mask; q[i]&&p[i]!=k; i=(i+1)&mask); p[i]=k; return q[i]; }}hash;int main(){int t,i,j,n;scanf("%d",&t);while(t--) {scanf("%d",&n);for(i=0;i<n;i++) {scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);}hash.clear();for(i=0;i<n;i++) {for(j=0;j<n;j++) {hash[a[i]+b[j]]++;}}int sum=0;for(i=0;i<n;i++) {for(j=0;j<n;j++) {sum+=hash[-c[i]-d[j]];}}printf("%d\n",sum);if(t) printf("\n");}return 0;}
二分_stl
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn=4005;int a[maxn],b[maxn],c[maxn],d[maxn],s1[maxn*maxn],s2[maxn*maxn];int main(){int t,n,i,j;scanf("%d",&t);for(int z=1;z<=t;z++) {scanf("%d",&n);for(i=0;i<n;i++) {scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);}int k1=0,k2=0;for(i=0;i<n;i++) {for(j=0;j<n;j++){ s1[k1++]=a[i]+b[j]; s2[k2++]=c[i]+d[j]; }}sort(s2,s2+k2);int sum=0;for(i=0;i<k1;i++) {sum+=upper_bound(s2,s2+k2,-s1[i])-lower_bound(s2,s2+k2,-s1[i]);}printf("%d\n",sum);if(z!=t) printf("\n");}return 0;}
0 0
- uva 1152 4 Values whose Sum is 0(二分_中途相遇|| hash)
- UVA 1152 4 Values whose Sum is 0 中途相遇法 二分查找
- UVa 1152 - 4 Values whose Sum is 0(中途相遇)
- UVA 1152 --4 Values whose Sum is 0(枚举--中途相遇法)
- Uva1152 4 Values whose Sum is 0 【中途相遇+二分】【例题8-3】
- UVa1152 4 Values whose Sum is 0 (中途相遇法+二分)
- (白书训练计划)UVa 1152 4 Values whose Sum is 0(中途相遇法。。)
- UVA 1152 4 Values whose Sum is 0 (hash)
- UVA 1152 4 Values whose Sum is 0 (二分)
- 【高效算法设计-中途相遇法】4 Values whose Sum is 0 哈希表
- uva1152 4 Values whose Sum is 0(中途相遇法)
- 4 Values whose Sum is 0 UVA
- 4 Values whose Sum is 0 UVA
- 4 Values whose Sum is 0 UVA
- UVa 1152 4 Values whose Sum is 0——二分
- uva 1152-4 Values whose Sum is 0
- UVA - 1152 4 Values whose Sum is 0 二分法
- UVa 1152 4Values whose Sum is 0
- php 桌面应用程序
- Linux命令行svn命令
- android Hierarchy Viewer
- Spark任务提交jar包依赖解决方案
- javascript中的函数Function
- uva 1152 4 Values whose Sum is 0(二分_中途相遇|| hash)
- IE8浏览器无法上传附件的解决方案以及相关兼容问题
- eclipse导入或新建工程出错解决方案
- java封装
- IO中 mark 和reset 的使用
- zzuli OJ 1066: 字符分类统计
- LeetCode-Ugly Number-解题报告
- 自定义TitleBar 控件
- 使用java对文件或文件夹进行压缩和加密