HDU 2614 Beat

HDU 2614 Beat_第1张图片 

有n个问题,T[i][j]表示解决完i问题后去解决j问题的用时,假设当前刚刚解决的问题为 i,正要解决的问题为 j ,那么在 j 上花费的时间要更多。

现在从第0个问题开始解决,第0个问题用时为0,问最多可以解决多少问题 

const int N=20+5;

    int n,m,t;
    int i,j,k;
    int a[N][N];
    int ans;
    bool vis[N];

void DFS(int step,int num,int cost)
{
    
    for(int i=1;i=cost){
            vis[i]=1;
            DFS(i,num+1,a[step][i]);
            vis[i]=0;
        }
    }
    ans=max(ans,num);
}
int main()
{
    //IOS;
    while(cin>>n){
        for(i=0;i>a[i][j];
        }
        ms(vis,0);
        ans=0;
        vis[0]=1;
        DFS(0,1,0);
        cout<

 

你可能感兴趣的:(搜索与回溯算法,HDU)