• poj 3159 Candies 夜


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

    经过我不断的尝试 老天重要显灵了

    终于来个个 1400+ms  伤不起呀

    用 queue 过不了 得用 stack

    可能对于后台数据 queue 会有一些多余的搜索

    也可能时 stack 本身比 queue 用快一些

    anyway 我的代码就得用 stack

    还有就是题目描述有点问题

     它是让我们求 flymouse 最多比 snoopy 多得多少 candy

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<queue>
    #include<stack>
    #include<cstring>
    
    using namespace std;
    
    const int N=30005;
    stack<int>str;//需要用 stack 不能用 queue
    struct node
    {
        struct tt *next;
    }mem[N];//需要用邻接表
    int dis[N];
    bool in[N];
    struct tt
    {
        struct tt *next;
        int j;
        int x;
    };
    inline void build(int i,int j,int x)
    {
        struct tt *t=new tt;
        t->j=j;
        t->x=x;
        t->next=mem[i].next;
        mem[i].next=t;
    }
    int n;
    void findans()
    {
       memset(dis,-1,sizeof(dis));//距离
       memset(in,false,sizeof(in));//是否在栈 中
       dis[1]=0;
       in[1]=true;
       str.push(1);//1 入栈
       int k;
       struct tt *t;
       while(!str.empty())
       {
           k=str.top();
           str.pop();
           in[k]=false;
           t=mem[k].next;
           while(t!=NULL)
           {
               if(dis[t->j]>dis[k]+t->x||dis[t->j]==-1)//无论 t->j 在不在栈中 可更新时就更新
               {
                   dis[t->j]=dis[k]+t->x;
                   if(!in[t->j]&&t->j!=n)//但只有 不在栈中时 才 入栈 防止重复搜索
                   {str.push(t->j);in[t->j]=true;}
               }
               t=t->next;
           }
       }
    }
    int main()
    {
        int m,i,j,x;
        scanf("%d %d",&n,&m);
        while(m--)
        {
            scanf("%d %d %d",&i,&j,&x);
            if(i!=n&&j!=1)//剪掉无意义的边
            build(i,j,x);
        };
        findans();
        printf("%d\n",dis[n]);
        return 0;
    }
    
  • 相关阅读:
    八月第二周学习心得
    七月第二周学习心得
    八月第一周学习
    八月第三周学习心得
    7月第一周学习心得
    php mysql_error()函数用法详解
    php mysql_select_db
    php中的释放“语句”unset和释放“函数”mysql_free_result()
    JavaScript]Cookie详解(转)
    Javascript类型转换的规则
  • 原文地址:https://www.cnblogs.com/liulangye/p/2512087.html
Copyright © 2020-2023  润新知