Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
RE了几十次,把结构体命名由node,改成edge就过了。哎!好没意思。#include <algorithm> #include <cstring> #include <cstdio> #include <iostream> using namespace std; #define MAXN 4100 #define pri 3999971 int a[MAXN],b[MAXN],c[MAXN],d[MAXN]; struct edge { int v,cnt,next; }edge[pri+1]; int head[pri+1],k; int hash(int num) { return (num+pri)%pri; } void add_hash(int num) { int cur=hash(num); for(int i=head[cur];i!=-1;i=edge[i].next) if(edge[i].v==num) {edge[i].cnt++;return;} edge[k].v=num; edge[k].cnt=1; edge[k].next=head[cur]; head[cur]=k++; } int find_hash(int num) { int cur=hash(num); for(int i=head[cur];i!=-1;i=edge[i].next) if(edge[i].v==num) return edge[i].cnt; return 0; } int main() { int n; while(cin>>n) { k=0; int i,j; long long ans=0; memset(head,-1,sizeof(head)); for(i=0;i<n;i++) cin>>a[i]>>b[i]>>c[i]>>d[i]; for(i=0;i<n;i++) for(j=0;j<n;j++) add_hash(a[i]+b[j]); for(i=0;i<n;i++) for(j=0;j<n;j++) ans+=find_hash(-c[i]-d[j]); cout<<ans<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator