• poj 3411 Paid Roads (dfs)


    http://poj.org/problem?id=3411

    这题RE了N多次,到最后也不知道是什么原因。看到网上说vis[x]不会超过3,就试着加上了<=3的限制,我了个去,马上AC!

    问题应该还是递归过程爆栈了吧。

    code:

    #include<cstdio>
    #include<cstring>
    const int MAX = 99999999 ;
    int vis[15] ;
    int ans, n, m ;
    bool flag ;
    struct node{
        int a ;
        int b ;
        int c ;
        int p ;
        int r ;
    }q[15] ;
    void dfs(int i, int v){
        if(v>ans)   return ;
        if(i==n){
            flag = true ;
            ans = v ;
            return ;
        }
        for(int j=0; j<m; j++){
            if(q[j].a!=i)  continue ;
            if(vis[q[j].b]<=3){
                vis[q[j].b] ++ ;
                if(vis[q[j].c])    dfs(q[j].b, q[j].p + v) ;
                else dfs(q[j].b, q[j].r + v) ;
                vis[q[j].b] -- ;
            }
        }
    }
    int main(){
        int i, j, a ;
        while(~scanf("%d%d", &n, &m)){
            memset(vis, 0sizeof(vis)) ;
            memset(q, 0sizeof(q)) ;
            flag = false ;
            ans = MAX ;
            for(i=0; i<m; i++)
                scanf("%d%d%d%d%d", &q[i].a, &q[i].b, &q[i].c, &q[i].p, &q[i].r) ;
            dfs(10) ;
            if(flag)    printf("%d\n", ans) ;
            else    printf("impossible\n") ;
        }
        return 0 ;}
  • 相关阅读:
    istio-流量管理-基于不同版本访问规则控制
    k8s安装istio
    策略模式
    递归思想
    Java Lambda 表达式
    redis实现分布式锁
    MySQL 的优化方案总结
    linux下查看某一端口被哪个进程占用
    组合模式
    桥接模式
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2373912.html
Copyright © 2020-2023  润新知