uva539

来源:互联网 发布:sublime text 3js插件 编辑:程序博客网 时间:2024/05/16 14:33

输入n,m;

n表示点数[0,n),m表示边数;

让你求出从一个点出发最长的变数点可以重复边不可以;

穷举每个点做起点就好

#include <iostream>#include<cstring>#include<algorithm>#define inf 1<<30using namespace std;int v[26][26],ma[26][26];int n,m;int MAX;void lbu(int i,int sum){    for(int j=0;j<n;j++)        if(ma[i][j]&&!v[i][j])    {        v[i][j]=v[j][i]=1;        lbu(j,sum+1);        v[i][j]=v[j][i]=0;    }    MAX=max(sum,MAX);}int main(){    while(cin>>n>>m,n+m)    {//        for(int i=0;i<26;i++)//        for(int j=0;j<26;j++)//            ma[i][j]=inf;        for(int i=0; i<m; i++)        {            int a,b;            cin>>a>>b;            ma[a][b]=ma[b][a]=1;        }        for(int i=0;i<n;i++)            lbu(i,0);        cout<<MAX<<endl;        memset(v,0,sizeof(v));        memset(ma,0,sizeof(ma));        MAX=0;    }    return 0;}

0 0
原创粉丝点击