首页 > 代码库 > HDU 2614 Beat 深搜DFS

HDU 2614 Beat 深搜DFS

这道题目还是比较水的,但是题意理解确实费了半天劲,没办法 谁让自己是英渣呢!

题目大意:

猪脚要解决问题, 他有个习惯,每次只解决比之前解决过的问题的难度要大。

他给我们一个矩阵  矩阵的 i 行 j 列表示 解决完第 i 个问题后再解决第 j 个问题 花费时间为 T[i][j] 也就是 题目的难度。

并且他是从第0个问题开始解决的,第0个问题花费的时间为 0

 

下面是代码 :

 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 #include<queue> 5 #include<string.h> 6 #include<iostream> 7 #include<vector> 8 using namespace std; 9 int mapz[20][20];10 int vis[20]={0}, n;11 int maxn;12 void DFS(int k,int a,int num);13 int main()14 {15     while(scanf("%d",&n) != EOF)16     {17         for(int i=0; i<n; i++)18         {19             for(int j=0; j<n; j++)20                 scanf("%d",&mapz[i][j]);21         }22         maxn = 0;23         vis[0] = 1;24         DFS(0,0,1);25         vis[0] = 0;26 27         printf("%d\n",maxn);28     }29     return 0;30 }31 32 33 void DFS(int k,int a,int num)34 {35     if(maxn == n)36         return ;37     maxn = max(maxn,num);38     for(int i=0; i<n; i++)39     {40         if(!vis[i] && a <= mapz[k][i])41         {42             vis[i] = 1;43             DFS(i,mapz[k][i],num + 1);44             vis[i] = 0;45         }46     }47 }

 

HDU 2614 Beat 深搜DFS