zoukankan      html  css  js  c++  java
  • POJ 1847 Tram

    仍然是水题,不然我也不会这么随意都做出来了,哥们AC个题,真TM不easy!

    这个算是一个正宗的最短路了,如何建图,也很明显。。

    View Code
    #include <stdio.h>

    #define N 102

    unsigned char map[N][N];
    unsigned char dist[N];
    unsigned char flag[N];

    void Dijsktra(int s,int e,int n)
    {
    int i,j,v;

    for(i=0;i<=n;i++) dist[i]=map[s][i],flag[i]=0;
    flag[s]=1;

    for(i=1;i<n;i++)
    {
    for(v=0,j=1;j<=n;j++)
    {
    if(!flag[j] && dist[v]>dist[j])
    v=j;
    }
    flag[v]=1;
    for(j=1;j<=n;j++)
    {
    if(!flag[j] && dist[v]+map[v][j]<dist[j])
    {
    dist[j]=dist[v]+map[v][j];
    }
    }
    }

    }

    int main()
    {
    int n,a,b;
    int i,j,m,num;

    freopen("input.txt","r",stdin);
    while(scanf("%d %d %d",&n,&a,&b)!=EOF)
    {
    for(i=0;i<=n;i++)for(j=0;j<=i;j++)map[i][j]=map[j][i]=0xff;

    for(i=1;i<=n;i++)
    {
    scanf("%d %d",&m,&num); m--; map[i][num]=0;
    for(j=0;j<m;j++)
    {
    scanf("%d",&num);
    map[i][num]=1;
    }
    }
    Dijsktra(a,b,n);

    if(dist[b]!=0xff)
    printf("%d\n",dist[b]);
    else printf("-1\n");
    }

    return 0;
    }

    空间132KB 时间0MS 感到很满意了。。可是随便看了看此题排行!

    那尼玛无语前边的都是 32KB 0MS 这……这……吓住我了!!

    难道他们的map数组用的是一位的变量。。可是怎么定义一位的变量啊?!

    到网上搜了搜也没找到,直接搜源码的尼玛也搜不到,这什么情况?

    不只是这个题还有一些题都是这样,不知大牛们都是怎么写啊!!!谁能告诉我。。。。GOD!……ORZ!

  • 相关阅读:
    职业规划书
    阿里云mysql安装配置(CentOS 7.3 64)
    在mvc中弹出提示框
    俺的博客开通啦
    sql中计算列小解
    ext的grid 获取页面内容方式
    2条路 代码生成 or 配置 2.1
    ext做列表页面关于查询多行的办法
    .net下开发windows服务的经验
    微软.net下 charting 要注意的事情
  • 原文地址:https://www.cnblogs.com/fornever/p/2394206.html
Copyright © 2011-2022 走看看