| ||||||||||
| 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 | |||||||||
这个代码错在哪,help/*pku 2890 matrix multiplication */
//传递闭包
//图形算法
#include<stdio.h>
#include<string.h>
#define N 1050
int map[N][100],len[N];
int pre[N],tc[N][N];
int n,m;
void tcdfs(int u,int p)
{
int ii;
int temp;
for(ii=1;ii<=len[u];ii++)
{
temp=map[u][ii];
if(pre[temp]) continue;
pre[temp]=1;
tc[p][temp]=1;
tcdfs(temp,p);
}
}
void dagtc()
{
int ii,jj;
int num;
memset(tc,0,sizeof(tc));
for(ii=1;ii<=n;ii++)
{
memset(pre,0,sizeof(pre));
pre[ii]=1;
tcdfs(ii,ii);
}
for(ii=1,num=0;ii<=n;ii++)
for(jj=1;jj<=n;jj++)
{
if(ii==jj) tc[ii][ii]=1;
if(tc[ii][jj]) num++;
}
printf("%d\n",num);
}
int main()
{
int ii;
int a,b,temp;
while(scanf("%d %d",&n,&m)!=EOF)
{
memset(len,0,sizeof(len));
for(ii=1;ii<=m;ii++)
{
scanf("%d %d",&a,&b);
a++,b++;
len[a]++;
map[a][len[a]]=b;
}
dagtc();
}
return 1;
}
/*
3 4
1 2
2 1
0 1
0 2
5 2
1 2
2 3
*/
贴代码是挫事,但还是做一下
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator