• 小天狼星的访问


    A. 小天狼星的访问


    Description

    经过数月的准备,小天狼星,一个被诬陷的杀人犯,准备闯入霍格沃茨见见他的侄子。霍格沃茨的地图呈一颗树状分布。每个房间由若干跳过道通向其他房间。由于小天狼星想尽快找到哈利:
    0.他会从房间0开始找
    1.他总是会选择离自己最近的房间找
    2.如果没找到,则继续选最近的房间深入
    3.如果已没有房间可走,则返回到上一个房间,继续选择(往回走也算时间哦)。
    4.当然,除了往回走,小天狼星是不会去一个房间两次的。

    Input

    第1行,nn房间个数,pp哈利所在的房间。(pn<100)
    2n2∼n行,每行3个整数s,t,l。从房间s到房间t的时间l。(st0s<t<n0<l10000)

    Output

    输出找到哈利的时间(开始时间为0)。

    Samples

    Input Copy
    5 2
    0 1 1
    0 2 2
    1 3 3
    1 4 4
    Output
    18


    这个题说如果如果没有别的房间可以走,就返回上一个房间,看到这例非常像dfs中的回溯过程,在一看
    数据范围n<100,不用想了就是dfs,你可以按照时间排一下序,页可以不用排,反正数据范围也不大,按照
    题目要求第一次走到就是答案
    对了:不要忘记vis[0]=1
    #include<iostream>
    #include<algorithm>
    #include<vector>
    using namespace std;
    typedef pair<int,int> PII;
    const int maxn=1e6+100;
    const int mm=1e3+100;
    int n,p;
    struct node{
        int s,t,l;
    }a[maxn];
    int ss[maxn];
    int tt[maxn];
    int vis[maxn];
    bool cmp(node x,node y){
        if(x.s==y.s){
            return x.l<y.l;
        }
        else{
            return x.s<y.s;
        }
    }
    int ans=0;
    int flag=0;
    void dfs(int qi){
        for(int i=1;i<=n-1;i++){
            if(a[i].s==qi&&!vis[i]){
                ans+=a[i].l;
                vis[i]=1;
                if(a[i].t==p){
                    printf("%d
    ",ans);
                    exit(0);
                    return ;
                }
                dfs(a[i].t);
                ans+=a[i].l;
            }
        }
    }
    int main(){
        cin>>n>>p;
        for(int i=1;i<=n-1;i++){
            cin>>a[i].s>>a[i].t>>a[i].l;
        }
        sort(a+1,a+n,cmp);
        vis[0]=1;//一定不要忘记
        dfs(0);
        cout<<ans<<endl;
    }


  • 相关阅读:
    剑指 Offer 22. 链表中倒数第k个节点
    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
    Leetcode1450. 在既定时间做作业的学生人数
    Leetcode1572. 矩阵对角线元素的和
    Leetcode 1480. 一维数组的动态和
    Idea连接数据库报错
    Java实现二叉树层次遍历并存入List的方法:从上往下,从左往右
    SpringCloud资源网站
    Java循环对list进行remove
    Java中字符串判空的正确打开方式
  • 原文地址:https://www.cnblogs.com/lipu123/p/14364662.html
Copyright © 2020-2023  润新知