标签:hdu
3 0 0 0 1 0 1 1 0 0 3 0 2 2 1 0 1 1 1 0 5 0 1 2 3 1 0 0 2 3 1 0 0 0 3 1 0 0 0 0 2 0 0 0 0 0
3 2 4题意:T[i][j]表示处理完i问题后,处理j问题需要的时间,但是如果我处理了i问题,现在处理j问题,那么如果我再处理k问题的要求是必须T[i][j]>=T[j][k]搜索一遍即可#include <stdio.h> #include <string.h> #include <queue> #include <algorithm> using namespace std; int map[20][20]; int n,vis[20],maxn; void dfs(int now,int len,int tim) { maxn = max(maxn,len); if(maxn == n) return ; for(int i = 1; i<n; i++) { if(vis[i]) continue; if(map[now][i]>=tim) { vis[i] = 1; dfs(i,len+1,map[now][i]); vis[i] = 0; } } } int main() { int i,j; while(~scanf("%d",&n)) { for(i = 0; i<n; i++) { for(j = 0; j<n; j++) scanf("%d",&map[i][j]); } maxn = 0; memset(vis,0,sizeof(vis)); vis[0] = 1; for(int i = 1; i<n; i++) { vis[i] = 1; dfs(i,2,map[0][i]); vis[i] = 0; } printf("%d\n",maxn); } return 0; }
标签:hdu
原文地址:http://blog.csdn.net/libin56842/article/details/41909429