hdu 2614
天啊,漏了一個條件,搞了半天,默認從第0個problem 開始做起,唉,我枚舉所有的問題了……………………
在DFS過程中,只要把最大深度記錄下來即可,不需要其他
#include<iostream> #include<string> using namespace std; int n,map[15][15],ans; bool vis[15]; void dfs(int i,int j,int deep) {if(deep>ans)ans=deep;for(int k=1;k<=n;k++){if(vis[k]||k==j) continue;if(map[i][j]<=map[j][k]){vis[k]=1;dfs(j,k,deep+1);vis[k]=0;}}return ; } int main() {while(cin>>n){for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>map[i][j];memset(vis,0,sizeof(vis));ans=0;for(int j=2;j<=n;j++){vis[j]=1;vis[1]=1;dfs(1,j,2);vis[j]=0;vis[1]=0;}cout<<ans<<endl;}return 0; }轉載于:https://www.cnblogs.com/nanke/archive/2011/08/11/2135617.html
總結
- 上一篇: RMQ+1/-1算法
- 下一篇: SQL Server:APPLY表运算符