程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> uva539(卡坦島)-回溯法

uva539(卡坦島)-回溯法

編輯:C++入門知識

[cpp]   #include<stdio.h>   #include<string.h>   int map[26][26],vis[26][26];   int n,m,pathmax;   void dfs(int i,int d)   {       if(d>pathmax) pathmax=d;       for(int j=0;j<n;j++)       {           if(!vis[j][i]&&!vis[i][j]&&map[i][j]&&i!=j)           {               vis[i][j]=vis[j][i]=1;               dfs(j,d+1);               vis[i][j]=vis[j][i]=0;           }       }   }   int main()   {       int i,x,y;       while(scanf("%d%d",&n,&m)==2&&n&&m)       {           memset(map,0,sizeof(map));           for(i=0;i<m;i++)           {               scanf("%d%d",&x,&y);               map[x][y]=map[y][x]=1;           }           pathmax=0;           for(i=0;i<n;i++)           {               memset(vis,0,sizeof(vis));               dfs(i,0);           }           printf("%d\n",pathmax);       }       return 0;   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved