poj 2785
2014-08-11 21:41
225 查看
#include <stdio.h>
#include <algorithm>
#define N 4000
using namespace std;
int a
,b
,c
,d
,ab[N*N],cd[N*N];
int main()
{
int n,ans,i,j,k;
while(scanf("%d",&n)!=EOF)
{
k=0;
for(i=0;i<n;i++)
scanf("%d %d %d %d",&a[i],&b[i],&c[i],&d[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
ab[k]=a[i]+b[j];
cd[k]=-c[i]-d[j];
k++;
}
sort(cd,cd+n*n);
for( ans=0,i=0;i<n*n;i++)
{
int left=0,right=n*n-1,mid;
while(left<=right)
{
mid=(left+right)/2;
if(ab[i]==cd[mid])
{
ans++;
for(k=mid+1;k<n*n;k++)
if(ab[i]==cd[k]) ans++; else break;
for(k=mid-1;k>=0;k--)
if(ab[i]==cd[k]) ans++; else break;
break;
}
else if(ab[i]<cd[mid]) right=mid-1;
else left=mid+1;
}
}
printf("%d\n",ans);
}
}
#include <algorithm>
#define N 4000
using namespace std;
int a
,b
,c
,d
,ab[N*N],cd[N*N];
int main()
{
int n,ans,i,j,k;
while(scanf("%d",&n)!=EOF)
{
k=0;
for(i=0;i<n;i++)
scanf("%d %d %d %d",&a[i],&b[i],&c[i],&d[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
ab[k]=a[i]+b[j];
cd[k]=-c[i]-d[j];
k++;
}
sort(cd,cd+n*n);
for( ans=0,i=0;i<n*n;i++)
{
int left=0,right=n*n-1,mid;
while(left<=right)
{
mid=(left+right)/2;
if(ab[i]==cd[mid])
{
ans++;
for(k=mid+1;k<n*n;k++)
if(ab[i]==cd[k]) ans++; else break;
for(k=mid-1;k>=0;k--)
if(ab[i]==cd[k]) ans++; else break;
break;
}
else if(ab[i]<cd[mid]) right=mid-1;
else left=mid+1;
}
}
printf("%d\n",ans);
}
}
相关文章推荐
- POJ 2785 4 VALUES WHOSE SUM IS 0 【折半枚举】
- POJ 2785 4 Values whose Sum is 0
- POJ 2785 4 Values whose Sum is 0(二分+折半枚举)
- 【POJ 2785 4 Values whose Sum is 0】+ 折半枚举(双项搜索))
- 【POJ 2785 4 Values whose Sum is 0】+ 折半枚举(双项搜索))
- 4 Values whose Sum is 0 POJ - 2785
- POJ 2785 A Values whose Sum is 0 ( 拆合+排序+二分 )
- POJ 2785 4 Values whose Sum is 0 折半枚举
- POJ2785——4 Values whose Sum is 0
- POJ 2785 4 Values whose Sum is 0
- poj 2785 二分暴力
- POJ 2785 4 Values whose Sum is 0 Hash!
- poj 2785 折半枚举(与poj2549的区别)
- POJ 2785:4 Values whose Sum is 0 (双向BFS)
- POJ 2785 (交大题库203页)
- POJ 2785 4 Values whose Sum is 0(二分)
- POJ 2785 4 Values whose Sum is 0
- POJ 2785 4 Values whose Sum is 0 hash
- Poj 2785 4 Values whose Sum is 0【二分查找】
- POJ - 2785 4 Values whose Sum is 0 —— 二分