| ||||||||||
| 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:我觉得没错啊,怎么减少内存开销啊????In Reply To:我觉得没错啊,怎么减少内存开销啊???? Posted by:dexter at 2004-03-31 16:59:10 > #include<stdio.h>
> #include<stdlib.h>
> #define MAX 1000
> int matrix[MAX+1][MAX+1];
> int visited[MAX+1];
> int hasspf;
> int vexnum;
> int firstadjvex(int u)
> {
> int j;
> for(j=1;j<=MAX;j++)
> if(matrix[u][j])
> return j;
> return -1;
> }
> int nextadjvex(int u,int w)
> {
> int j;
> for(j=w+1;j<=MAX;j++)
> if(matrix[u][j])
> return j;
> return -1;
> }
> void DFS(int v)
> {
> int w;
> visited[v]=1;
> for(w=firstadjvex(v);w>=0;w=nextadjvex(v,w))
> if(!visited[w])
> DFS(w);
> }
> int findunvisited(int j)
> {
> int i;
> for(i=1;i<=vexnum;i++)
> if(!visited[i]&&i!=j)
> return i;
> return -1;
> }
> int is_spf(int j)
> {
> int temp[MAX+1];
> int i,num,w,v;
> for(v=1;v<=vexnum;v++)
> visited[v]=0;
> for(i=1;i<=vexnum;i++)
> {
> temp[i]=matrix[j][i];
> matrix[j][i]=0;
> }
> num=0;
> while((w=findunvisited(j))!=-1)
> {
> num++;
> DFS(w);
> }
> for(i=1;i<=vexnum;i++)
> matrix[j][i]=temp[i];
> return num;
> }
>
> int init()
> {
> int from,to;
> int i,j;
> for(i=1;i<MAX;i++)
> for(j=1;j<MAX;j++)
> matrix[i][j]=0;
> vexnum=0;
> scanf("%d",&from);
> if(from==0)
> return 0;
> while(from)
> {
> if(from>vexnum)
> vexnum=from;
> scanf("%d",&to);
> if(to>vexnum)
> vexnum=to;
> matrix[from][to]=1;
> matrix[to][from]=1;
> scanf("%d",&from);
> }
> return 1;
> }
> main()
> {
> int i,j;
> int nsnet;
> j=i=0;
> while(init())
> {
> i++;
> printf("Network #%d\n",i);
> hasspf=0;
> for(j=1;j<=vexnum;j++)
> {
> nsnet=is_spf(j);
> if(nsnet>1)
> {
> printf(" SPF node %d leaves %d subnets\n",j,nsnet);
> hasspf=1;
> }
> }
> if(!hasspf)
> printf(" No SPF nodes\n");
> }
> }
>
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator