poj 3275
#include<iostream>
#include<fstream>
using namespace std;
int n,m;
int a[1001][1001];
int b[1001][1001];
int map[1001][1001];
void read(){
// ifstream cin("in.txt");
int i,j,k,s,t;
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>j>>k;
a[++a[0][j]][j]=k;
b[++b[0][k]][k]=j;
map[j][k]=1;
}
for(k=1;k<=n;k++)
for(i=1;i<=b[0][k];i++)
{
s=b[i][k];
for(j=1;j<=a[0][k];j++)
{
t=a[j][k];
if(!map[s][t])
{
map[s][t]=1;
a[++a[0][s]][s]=t;
b[++b[0][t]][t]=s;
}
}
}
int ans=0;
for(i=1;i<=n;i++)
ans+=a[0][i]+b[0][i];
cout<<n*(n-1)/2-ans/2<<endl;
}
int main(){
read();
return 0;
}
#include<fstream>
using namespace std;
int n,m;
int a[1001][1001];
int b[1001][1001];
int map[1001][1001];
void read(){
// ifstream cin("in.txt");
int i,j,k,s,t;
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>j>>k;
a[++a[0][j]][j]=k;
b[++b[0][k]][k]=j;
map[j][k]=1;
}
for(k=1;k<=n;k++)
for(i=1;i<=b[0][k];i++)
{
s=b[i][k];
for(j=1;j<=a[0][k];j++)
{
t=a[j][k];
if(!map[s][t])
{
map[s][t]=1;
a[++a[0][s]][s]=t;
b[++b[0][t]][t]=s;
}
}
}
int ans=0;
for(i=1;i<=n;i++)
ans+=a[0][i]+b[0][i];
cout<<n*(n-1)/2-ans/2<<endl;
}
int main(){
read();
return 0;
}
浙公网安备 33010602011771号