| ||||||||||
| 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 | |||||||||
贴上去试了一下,AC了In Reply To:这个代码错在哪,help Posted by:xiangsanzi at 2006-07-31 22:27:42 > /*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