HDU 2614 DFS

来源:互联网 发布:大专转行数据分析师 编辑:程序博客网 时间:2024/06/07 18:11

深度优先搜索。

注意ans数据量可能很大。


#include<cstdio>#include<cstring>int T[20][20];int ans[20000],k=0;bool visit[20];void dfs(int n,int at,int cost,int finish){    visit[at]=1;    ans[k++]=finish;    for(int i=0;i<n;i++)    {        if(cost<=T[at][i]&&visit[i]==0)        {dfs(n,i,T[at][i],finish+1);}    }    visit[at]=0;}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        memset(visit,0,sizeof(visit));        k=0;        for(int i=0;i<n;i++)        {            for(int j=0;j<n;j++)            {                scanf("%d",&T[i][j]);            }        }        dfs(n,0,0,1);        int key=ans[0];        for(int i=1;i<k;i++)        {            if(ans[i]>key) key=ans[i];        }        printf("%d\n",key);    }    return 0;}


0 0
原创粉丝点击