HDU 2614 Beat 深搜DFS

时间:2023-03-08 16:28:23

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

题目大意:

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

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

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

下面是代码 :

 #include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<queue>
#include<string.h>
#include<iostream>
#include<vector>
using namespace std;
int mapz[][];
int vis[]={}, n;
int maxn;
void DFS(int k,int a,int num);
int main()
{
while(scanf("%d",&n) != EOF)
{
for(int i=; i<n; i++)
{
for(int j=; j<n; j++)
scanf("%d",&mapz[i][j]);
}
maxn = ;
vis[] = ;
DFS(,,);
vis[] = ; printf("%d\n",maxn);
}
return ;
} void DFS(int k,int a,int num)
{
if(maxn == n)
return ;
maxn = max(maxn,num);
for(int i=; i<n; i++)
{
if(!vis[i] && a <= mapz[k][i])
{
vis[i] = ;
DFS(i,mapz[k][i],num + );
vis[i] = ;
}
}
}