UVA539dfs搜一条无重复边的最长道路
2015-09-24 22:16
330 查看
这题刚开始想的按点搜,结果代码写着写着发现写残了,然后就改成了按边搜,以每条边为起始边往深层去递归就行了,
记得递归返回之后要还原就行了。
记得递归返回之后要还原就行了。
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #include<algorithm> #include<map> #include<set> #include<vector> #include<stack> #include<queue> #include<climits> #define LL long long using namespace std; const int N=201320; const LL mod=53060041; int n,m; int ans; int G[30][30]; void dfs(int x,int y,int d) { for(int i=0;i<n;i++) { if(G[y][i]) { G[y][i]=0; G[i][y]=0; dfs(y,i,d+1); G[y][i]=1; G[i][y]=1; } } ans=max(ans,d); } int main() { while(cin>>n) { cin>>m; if(!n&&!m) break; memset(G,0,sizeof(G)); for(int i=0;i<n;i++) v[i].clear(); for(int i=0;i<m;i++) { int a,b; cin>>a>>b; G[a][b]=1; G[b][a]=1; } ans=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if(G[i][j]) { G[i][j]=0; G[j][i]=0; dfs(i,j,1); G[i][j]=1; G[j][i]=1; } } cout<<ans<<endl; } return 0; }
相关文章推荐
- opencv2-1随机图形与文字生成
- usaco A Game(dp)
- 最全的常用正则表达式大全
- VS编写DLL
- Git学习记录
- Jenkins整合XCode详解
- [Goal] 9/21 ThoughtWorks宣讲会
- 正则表达式
- C++基础复习---4(内存分配)
- 健康问答API接口-健疑问开放接口
- MATLAB:镜像图片
- 使用wireshark进行EtherCAT分析实时性~~·
- 矩阵快速幂模板
- Android中dp,px,sp概念梳理以及如何做到屏幕适配
- 分治-归并排序1
- An interesting scroll background------ActionScript3.0
- c++基础复习-----3(位运算)
- 高效缓存服务器Memcached(一)
- 数据库的事务,事务的特性以及回滚
- 9.24