uva 1152 4 Values whose Sum is 0(二分_中途相遇|| hash)
2015-08-28 16:40
435 查看
hash
二分_stl
#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; }
相关文章推荐
- Android UI 绘制过程浅析(四)draw过程
- SQLQuery
- 使用了Autolayout的UITableViewCell动态布局和高度动态改变自适应
- win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)
- 【Material Design视觉设计语言】UI组件设计(十四):Tabs
- iOS开发之View属性hidden, opaque, alpha的区别
- 【Material Design视觉设计语言】UI组件设计(十三):Toast
- windowsAPI之OpenProcessToken,AdjustTokenPrivileges 和LookupPrivilegeValue
- Android TouchEvent之requestDisallowInterceptTouchEvent
- SeaJS与RequireJS最大的区别
- iOS8里设置tableview的setSeparatorInset:UIEdgeInsetsZero不起作用
- [Bluetooth Core V4.2 ] VOL2, PartB, 3 Physical Links
- leetcode Repeated DNA Sequences
- 8.9 Controlling the Query Optimizer
- 【Material Design视觉设计语言】UI组件设计(十二):滑块
- [UI]抽屉菜单DrawerLayout分析(三)
- [UI]抽屉菜单DrawerLayout分析(二)
- [UI]抽屉菜单DrawerLayout分析(一)
- 【Material Design视觉设计语言】UI组件设计(十一):选择器
- li value 为负值时,IE 的兼容性问题